原创 leveldb深度剖析-SkipList跳錶

上一篇介紹了leveldb整體存儲結構,瞭解整體存儲結構有助於我們深入理解leveldb源碼。本篇介紹一下leveldb在內存中存儲結構。 鏈表的特點是插入、刪除很好,但是查找性能就比較差了,需要從頭開始遍歷。對於查找場景我們通常使用二叉

原创 leveldb深度剖析-存儲結構(2)

繼續上一篇內容繼續說明存儲結構。 五、.ldb文件 關於ldb文件說明: 1)ldb文件是按照block存儲,一個block默認大小爲4KB,當內存數據增長到4KB則進行寫文件操作。 2)從leveldb v1.14版本開始,數據存儲到了

原创 Centos編譯並安裝wireshark-3.0.2

Centos默認提供的wireshark rpm包是1.10,這個版本太老了而且有很多bug,所以打算升級一下wireshark版本。可是無奈網上沒有適合centos的rpm包,所以打算自己編譯wireshark源碼.如果希望編譯wind

原创 ssh免密登錄

一、環境 三臺機器做ssh免密登錄 用戶 IP test 192.168.10.10 test 192.168.10.20 test 192.168.10.30 二、操作 2.1、生成祕鑰 登錄192.168.10.10,通過ssh-ke

原创 Perf工具使用

最近在提升軟件性能,用到了Perf工具.網上有很多文章都在介紹,這裏只簡單記錄使用歷程. 一、軟件必備 我們必須安裝perf工具,可以通過yum方式進行安裝: yum install -y perf 使用perf通常和火焰圖結合,有了火焰

原创 CMake基本常識

不清楚,爲什麼很多越來越多的軟件都用CMake去編譯。CMake就是一個大奇葩,這麼難用的東西,居然越來越火了!!真心感覺Makefile比CMake容易看懂的多。 下面是對CMake一些總結,後續在一點點補充。我們可以通過命令 cmak

原创 內存檢測工具sanitize

以前用過valgrind這個內存泄露檢查工具,這個工具相對簡單,對於一些複雜的內存泄露可能無法解析出來而且有一個問題就是隻有檢測的進程退出後纔會輸出內存泄露信息。 今天介紹的工具sanitize可以在檢測到內存泄露第一時間立刻終止進程,並

原创 深入剖析Flannel-創建網卡(1)

在上一篇介紹了flannel啓動流程(main函數),只把整體流程介紹了一下並沒有深入探討,接下來幾篇博客會深入介紹flannel到底做了哪些事件。今天就介紹創建網卡流程。 一、創建子網管理對象 1.1、創建管理對象 flannel自身沒

原创 深入剖析Flannel-創建網卡(2)

在上一篇只介紹到了backend對象創建完畢,但是並沒有真正生成網卡。本篇將介紹flannel是如何創建網卡且對其進行配置。 一、註冊網絡 我們在main函數中得知,創建網卡調用的函數爲RegisterNetwork。 /** * 註

原创 深入剖析Flannel-監控

在上一篇末尾提到了一個問題:當新容器加入到網絡中,其他flannel是如何感知的呢?這個就要取決flannel的監控這部分實現了。flannel監控實際上是監視etcd某些key的變化,當這些key有變化時etcd會發送響應給flanne

原创 深入剖析Flannel-啓動流程

最近一直在研究flannel的源代碼,發現flannel自身代碼不是很多,依賴的第三方代碼卻很多,例如創建隧道是通過第三方庫vishvananda.後續分析源碼過程中,不會深入介紹第三方庫,只把我們關心的邏輯(流程)介紹清楚。 一、流程圖

原创 c語言實現容器

爲了實現瞭解docker容器底層實現原理,特地用C語言實現了一個簡單的Demo--ContainerC,放到了github中地址,僅供參考學習。在實現ContainerC的時候參考iproute2源代碼。

原创 C語言創建tap設備並且設置ip

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/socket.h> #include <netine

原创 KVM虛擬機典型配置文件xml

<domain type='kvm'> <name>vm64-1</name> //虛擬機名稱 <memory unit='MiB'>2300</memory> //最大內存,單位M <currentMemory unit='Mi

原创 菜鳥學習nginx之總結雜耍

本篇是對Nginx學習最後一篇,若日後工作中對Nginx有了更深入瞭解,會再次寫相關博客。 一、關於Nginx幾個典型問題 1.1、爲什麼Nginx是高性能HTTP?是如何做到高性能? 這種問題比較廣,往往出現在面試過程中,比如說阿里、騰