LINUX下找出哪個程序造成的IO等待很高的方法

時間 2022-05-29 07:25:02

1樓:

每個程序各自有不同的使用者地址空間,任何一個程序的全域性變數在另一個程序中都看不到,所以程序之間要交換資料必須通過核心,在核心中開闢一塊緩衝區,程序1把資料從使用者空間拷到核心緩衝區,程序2再從核心緩衝區把資料讀走,核心提供的這種機制稱為程序間通訊(ipc,interprocess communication)。程序之間傳遞資訊的各種途徑如下:1.

父程序通過fork可以將開啟檔案的描述符傳遞給子程序2.子程序結束時,父程序呼叫wait可以得到子...

linux下抓出哪個程序造成的iowait很高的方法

2樓:匿名使用者

您好,我看到您的問題很久沒有人來回答,但是問題過期無人回答會被扣分的並且你的懸賞分也會被沒收!所以我給你提幾條建議:

一,你可以選擇在正確的分類下去提問,這樣知道你問題答案的人才會多一些,回答的人也會多些。

二,您可以到與您問題相關專業**論壇裡去看看,那裡聚集了許多專業人才,一定可以為你解決問題的。

三,你可以向你的網上好友問友打聽,他們會更加真誠熱心為你尋找答案的,甚至可以到相關**直接搜尋.

四,網上很多專業論壇以及知識平臺,上面也有很多資料,我遇到專業性的問題總是上論壇求解決辦法的。

五,將你的問題問的細一些,清楚一些!讓人更加容易看懂明白是什麼意思!

謝謝採納我的建議! !

linux下抓出哪個程序造成的iowait很高的方

3樓:匿名使用者

1、檢查raid的狀態,比如是否正在重建或者沒有初始化

2、替換作業系統的核心,最好使用發行版標準的 li nux kernel ,因為有比較多的補丁

3、檢查/ proc/ sys/ vm下面是否可以優化

4、是否使用了檔案系統,檔案系統是否有優化的選項,比如在rai d5上採用xfs檔案系統時, 可以調節一些引數優化效能

5、客戶端程式是否產生了過大的壓力,比如磁碟的讀寫效能只有10mb/ s,每個執行緒的讀寫 速度為5mb/ s,那麼如果讀寫執行緒數為20的話,無疑會造成i owai 過高

6、檢視程序狀態 ps eopid,user, wchan= wi de- wchan- column cmd|awk print$0}

7、使用block_dump抓哪個程序幹壞事前要先停掉

linux 檢視哪個程序io高

4樓:潭絲柳

測試環境還費這勁,重灌個新系統就是了,花不了多少時間。

2.6.20開始,linux核心才支援對io的統計,所以就算找其他工具,也不太容易達到你的要求。

可以試試把/proc/sys/vm/block_dump設為1,讓核心把對block的讀寫dump到日誌中,之後再從dmesg命令的輸出中想辦法去查詢讀寫最多的程序。別忘了最後再把block_dump設成0,這對系統效能影響很大。

另外有個不太準確的辦法,ps命令可以顯示程序的狀態,ps -eo pid,state,其中狀態d是「uninterruptible sleep (usually io)」,佔用io多的程序,應該io等待也多,所以寫個小指令碼,每秒打出狀態為d的程序,佔用io多的程序肯定在裡面。

linux io過高是由什麼程序引起的

linux 中 怎樣檢視哪個程序佔用io比較高

linux的 iostat 找出哪個程序佔據了大量io

5樓:

iostat實時檢視不如iotop,iotop用了直觀反映你的需求

# iotop

6樓:運維佈道師

await 選項值

7樓:

$ sudo iotop

怎麼檢視linux的哪個程序佔用磁碟io較多

8樓:栩箭

裝上iotop, 或者dstat, 用他們看.

個人比較喜歡iotop

linux 下 程序和執行緒的區別

二者的聯絡 一個執行緒可以建立和撤銷另一個執行緒 同一個程序中的多個執行緒之間可以併發執行。執行緒是一個更加接近於執行體的概念,它可以與同程序中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。二者的區別 主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間,一個程序崩潰後...

如何在linux環境下實現程序之間的通訊

linux環境下實現程序之間的通訊主要有以下幾種方式 管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semo...

linux中怎麼終止正在執行的程序

linux中終止一個正在執行執行的程序最常用的是kill命令,它是用程序pid作為引數來殺死程序。那如何獲得指定程序的pid呢?用pidof命令啊。比如獲取syslogd程序pid的命令是 pidof syslogd。知道了程序pid,就可以用kill命令終止它了 kill 9 pid號碼 或者ki...