Time of Update: 2018-12-07
得到進程的pid:ps -ef | grep process_name | grep -v "grep" | awk '{print $2}'查看進程的所有線程# ps mp 6648 -o THREAD,tidUSER %CPU PRI SCNT WCHAN USER SYSTEM TIDroot 0.0 - - - - - -root 0.0 24 - - - - 6648root 0.0 21 - - - - 6650root 1.0 24 - - - - 14214root 0.0 23
Time of Update: 2018-12-07
首先要瞭解兩個特殊的裝置:/dev/null:資源回收筒、無底洞/dev/zero:產生字元 Ø 測試磁碟寫能力time dd if=/dev/zero of=/test.dbf bs=8k count=300000因為/dev//zero是一個偽裝置,它只產生Null 字元流,對它不會產生IO,所以,IO都會集中在of檔案中,of檔案只用於寫,所以這個命令相當於測試磁碟的寫能力。 Ø 測試磁碟讀能力time dd if=/dev/sdb1 of=/dev/null
Time of Update: 2018-12-07
在 WebHostingTalk 論壇上有些國外奸商會把虛擬機器當作獨立伺服器賣,去年7月份的時候就有一位中國同胞上當受騙, 並在 WHT 上發帖聲討,證據確鑿,甚至連服務商自己也承認,回帖達355篇。這家獨立伺服器/VPS 供應商 HostATree.com 居然大膽的把 OpenVZ VPS 這種一看就知道是虛擬機器的虛擬機器當作獨立伺服器賣,暈,至少也要弄個 VMWare/KVM/Xen HVM 吧(更難發現是虛擬機器),用 OpenVZ
Time of Update: 2018-12-07
參考了TC的很多文檔,自己也整理了一篇配置記錄。在實際使用過程中效果還不錯,在此分享給大家以備參考。環境:區域網路規模不是很大40多台機器。 NAT共用上網(內網:eth0 外網:eth2)CBQ 是通過硬體的閑置時間來計算隊列,硬體不同,效果也不同,對於比較大的網路使用HTB比較好。以下限制上傳和下載的方法可以寫成指令碼,通過mrtg發現流 量的異常情況,然後通過ntop查處是誰在幹壞事,最後用寫好的tc指令碼限制他的流量,避免影響其他人的網路使用。 1)
Time of Update: 2018-12-07
Linux核心之系統調用 1. 應用程式通過API而不是直接調用系統調用來編程; 2. getpid()系統調用樣本:asmlinkage long sys_getpid(void){ return current->tgid;} asmlinkage 編譯器僅從棧中提取參數 系統調用的命名規則:sys_syscallname() 3. 每個系統調用都對應一個唯一的系統調用號,如果系統調用被刪除,但它佔用的系統調用號不回收。 4. 系統調用通過非強制中斷實現(int $0
Time of Update: 2018-12-07
對於自行實現的很多服務,很多人喜歡用一個專門的監控進程來監控自己的服務,為了防止監控進程也崩掉,甚至使用了經典的雙進程監控。不說別的,光編寫調試這個雙進程就夠我喝一壺的啦,對於我這樣專門寫bug的傢伙來講,更是一件揪心的差事。就算有一天,我不再寫bug了,可以作業系統的關卡你又過不了了,難關重重。這些監控程式,不管是單進程還是雙進程,其根本肯定是一個big loop,而且這個big loop中幾乎都要有一個sleep,否則CPU飆升,卻不見得能給真正的服務,淨給了這個big
Time of Update: 2018-12-07
轉載請註明出處。http://www.cnblogs.com/dave_cn/本程式需要ncurses庫,ubuntu下安裝ncurses可以執行下面命令:sudo apt-get install libncurses5-dev 關於ncurses的用法,讀者可以Google之。程式啟動並執行效果如下:其中包含兩個視窗,一個為game視窗,一個為日誌視窗。 代碼如下:/** * Snake * author: dave_cn * date : 2010/7/14 * info : *
Time of Update: 2018-12-07
轉載請註明出處。http://www.cnblogs.com/dave_cn/ 這段時間事情比較忙,好不容易抽出些時間再找點遊戲練練手,這裡獻醜了。 我在Ubuntu 10.04下測試過,可以正常運行。代碼用到了NCURSES庫。編譯的時候鏈一下ncurses庫就可以了,如:cc -Wall -O2 -o mine mine.c -lncurses 首先放出介面欣賞一下,眼暈的看看外面再繼續 ==!: 代碼:#include <stdio.h>#include
Time of Update: 2018-12-07
轉載請註明出處。http://www.cnblogs.com/dave_cn/ 之前做了一個字元介面下的掃雷(http://www.cnblogs.com/dave_cn/archive/2010/10/13/1849342.html)自己倒是玩的不亦樂乎,不過使用者體驗太差@@,我們家大小姐玩一次便不再像玩了
Time of Update: 2018-12-07
鏈表是C語言編程中常用的資料結構,比如我們要建一個整數鏈表,一般可能這麼定義: ? 1 2 3 4 struct int_node { int val; struct int_node *next; }; 為了實現鏈表的插入、刪除、遍曆等功能,另外要再實現一系列函數,比如: ? 1 2 3 4 5 6 7 8 9 void insert_node(struct int_node *head, struct int_node *current); void
Time of Update: 2018-12-07
前不久因項目需要寫了開機啟動其他程式的shell指令碼,因工作忙,調試完給了技術支援人員,也沒去注意過。到後來,有幾台伺服器突然被重啟了,這時候領導問,怎麼開機啟動的指令碼沒起作用,還被批了一頓,哎,做事虎頭蛇尾,活該!然後去查,一直沒查到原因,手動執行都是正確的,在排除了許可權原因和指令碼問題後,很鬱悶,怎麼放到開機啟動項目中就無法執行了呢。於是去查linux開機啟動過程資訊。google下,看了下關於一些開機啟動啟的資料,發現了開機啟動程式的層級為3.果斷順藤莫瓜,找到了這個目錄 /etc/
Time of Update: 2018-12-07
在瀏覽技術部落格的時候,會發現博主貼出的代碼是有行號的,就像下面的代碼:1 void main()2 {3 printf("hello");4 }如果這種情況發生在部落格園,你還可以複製的時候不複製行號(如果正確選擇的話),但是其他的網站就不一定了。為了可以在拷貝代碼的時候去掉行號我自己寫了個小指令碼來去掉這些討厭的行號。先把代碼貼出來給大家看看:#!/bin/bashwhile read linedo num=`echo "$line" | awk '{print $1}'`
Time of Update: 2018-12-07
xen-4.1.2+Linux-3.1.2源碼編譯安裝 以下所有命令均在CentOS6.2系統上操作。 下載xen源碼 wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz 安裝必備軟體包yum groupinstall "Development Libraries"yum groupinstall "Development Tools"yum install transfig wget texi2html
Time of Update: 2018-12-07
前不久因項目需要寫了開機啟動其他程式的shell指令碼,因工作忙,調試完給了技術支援人員,也沒去注意過。到後來,有幾台伺服器突然被重啟了,這時候領導問,怎麼開機啟動的指令碼沒起作用,還被批了一頓,哎,做事虎頭蛇尾,活該!然後去查,一直沒查到原因,手動執行都是正確的,在排除了許可權原因和指令碼問題後,很鬱悶,怎麼放到開機啟動項目中就無法執行了呢。於是去查linux開機啟動過程資訊。google下,看了下關於一些開機啟動啟的資料,發現了開機啟動程式的層級為3.果斷順藤莫瓜,找到了這個目錄 /etc/
Time of Update: 2018-12-07
linux進程的五種狀態運行可中斷不可中斷殭屍停止 遍曆父進程和子進程 註:init進程是作為init_struct靜態分配的。 進程的建立linux中通過fork和exec實現進程的建立。fork通過拷貝當前進程來建立一個新的進程,再通過exec載入可執行檔並執行。fork採用的寫時拷貝方法避免了不必要資料的拷貝,使得linux可以快速建立進程。 Fork在shell中,執行命令時,shell程式就是通過"複製"形成了父子進程。子進程產生後,執行exec系列函數,載入新的可執行檔,開始執行。
Time of Update: 2018-12-07
非阻塞型同步 (Non-blocking Synchronization) 簡介如何正確有效保護共用資料是編寫並行程式必須面臨的一個難題,通常的手段就是同步。同步可分為阻塞型同步(Blocking Synchronization)和非阻塞型同步( Non-blocking Synchronization)。阻塞型同步是指當一個線程到達臨界區時,因另外一個線程已經持有訪問該共用資料的鎖,從而不能擷取鎖資源而阻塞,直到另外一個線程釋放鎖。常見的同步原語有 mutex、semaphore
Time of Update: 2018-12-07
進程是執行期間的程式及其它所包含的資源的總稱。 進程通過fork()系統調用產生,該系統調用通過複製一個現有進程來建立一個全新的進程。fork()調用一次返回兩次:一次回到父進程、一次回到新建立的子進程。 進程描述符及任務結構 核心把進程放在task
Time of Update: 2018-12-07
1. 找出CPU佔用率高的線程:ps H -eo user,pid,ppid,tid,time,psr,%cpu,cmd --sort=%cpu參數'H'顯示線程相關的資訊,格式輸出中包含:user,pid,ppid,tid,time,%cpu,cmd,然後再用%cpu欄位進行排序2. 找出耗iowait的進程先停掉syslogservice syslog stop開啟block dump:echo 1 > /proc/sys/vm/block_dump多次運行,查看結果dmesg |
Time of Update: 2018-12-07
How do I send gratuitous ARPs under Linux? How do I tell my DUMMY router that the IP is over here now, under Linux operating systems?You can use the arping command to send a gratuitous reply using the -A option. arping can send ARP REQUEST to a
Time of Update: 2018-12-07
原創文章,轉載請註明: 轉載自系統技術非業餘研究本文連結地址: Linux下方便的socket讀寫查看器(socktop)晚上 雕梁 說要找個工具來調查下unix域通訊端的發送和接受情況,比如說A程式是否送出,B程式是否接收到,他找了tcpdump ,wireshark什麼的,貌似都不支援。這時候還是偉大的systemtap來救助了。 因為所有的socket通訊都是通過socket介面來的,任何family的通訊包括unix域套接都要走的,所以只要截獲了socket 讀寫的幾個syscall