原创 測試系統可供malloc()使用的內存空間大小

一般程序中使用malloc()函數進行地址空間的申請,那麼malloc()到底最大可以申請多少內存呢?可以利用下面這個小程序來測試malloc最大內存申請數量(當然這個數量跟你係統擁有的內存有關)。 #include<stdio.h> #

原创 利用ycsb測試redis性能

1、redis的安裝 在http://redis.io/download上面下載了redis-2.8.3.tar.gz存放在/home/hs/program目錄下cd /home/hs/program tar -zxvf redis-

原创 Linux CFS 進程調度算法

Linux主要實現了兩大類調度算法,CFS(完全公平調度算法)和實時調度算法。宏SCHED_NOMAL和SCHED_BATCH主要用於CFS調度,而SCHED_FIFO和SCHED_RR主要用於實時調度。這幾個宏的定義可以在include

原创 flashcache中應用device mapper機制

Device Mapper(DM)是Linux 2.6全面引入的塊設備新構架,通過DM可以靈活地管理系統中所有的真實或虛擬的塊設備。 DM以塊設備的

原创 打印堆棧中的初始化信息

進程初始化的時候,堆棧裏面保存了關於進程執行環境和命令行參數等信息。事實上,堆棧裏面還保存了動態鏈接器所需要的一些輔助信息數組(Auxiliary Vector)。那麼進程執行環境、命令行參數信息以及輔助信息數組在進程堆棧中是怎麼分佈的呢

原创 vim中跨文件的多行拷貝

1、用vim打開一個文件,例如:original.trace 2、在普通模式下,輸入:":sp"(不含引號)橫向切分一個窗口,或者":vsp"縱向切分一個窗口,敲入命令後,你將看到兩個窗口打開的是同一個文件 3、在普通模式下,輸入:":e

原创 slab分配器分配task_struct結構

Linux通過slab分配器分配task_struct結構,這樣能達到對象複用和緩存着色的目的 分配和釋放數據結構是所有內核中最普遍的操作之一。爲了便於數據的頻繁分配和回收,編程者常常會用到一個空閒鏈表。該空閒鏈表包含可供使用的、已經分

原创 list_entry()詳解

Linux內核中,獲取節點地址的函數list_entry()非常常用,由於其定義有點晦澀,先解析如下: list_entry的宏定義: #define list_entry(ptr, type, member) /  ((typ

原创 find_new_reaper

如果父進程在子進程之前退出,必須有機制來保證子進程能找到一個新的父親,否則這些成爲孤兒的進程就會在退出時永遠處於僵死狀態,白白地耗費內存。對於這個問題,解決方法是給子進程在當前線程組內找一個線程作爲父親,如果不行,就讓init做它們的父進

原创 局域網內IP地址的檢測與分配

每年當實驗室進來師弟師妹後,由於師弟師門剛開始不熟悉實驗室的情況,進行IP地址設置時都會動態獲取IP地址,這時有可能就將實驗室博士GG使用多年的IP

原创 linux中fork()函數詳解

一、fork入門知識      一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或者傳入的變量不同,兩個進程也可以做不同的事

原创 Linux CPU 親和性

軟親和性意味着進程並不會在處理器之間頻繁遷移,而硬親和性則意味着進程需要在您指定的處理器上運行。 Linux調度程序同時提供軟硬CPU親和性機制。雖然它盡力通過一種軟的親和性試圖使進程儘量在同一個處理器上運行,但它也允許用戶強制指定“這

原创 顯式運行時鏈接

dlopen 功能:打開一個動態鏈接庫 包含頭文件: #include <dlfcn.h> 函數定義: void * dlopen( const char * pathname, int mode); 函數描述: 在dlopen()

原创 DiskSim 4.0 with dixtrac 安裝

1、Install bison and flex, if you have not installed already.$ sudo apt-get

原创 利用ycsb測試cassandra性能

java 、maven、ycsb 的安裝及配置見這篇博客:http://blog.csdn.net/hs794502825/article/deta