Rhel
CPU LOAD AVRG + 如何處理 D 狀態的程序
我們可以從我們的
RHEL 7.6
伺服器(核心版本-3.10.0-957.el7.x86_64
)看到以下程序處於D
狀態(它們從HDFS
使用者執行)注意 - D 狀態程式碼表示程序處於不間斷睡眠狀態
ps -eo s,user,cmd | grep ^[RD] D hdfs du -sk /grid/sdj/hadoop/hdfs/data/current/BP-1018134753-10.3.6.170-1530088122990 D hdfs du -sk /grid/sdm/hadoop/hdfs/data/current/BP-1018134753-10.3.6.170-1530088122990 R root ps -eo s,user,cmd
注意 - 磁碟
sdj
和字節大小,也sdm
“發生在其他磁碟上,等等,磁碟使用 ext4 文件系統3T``"du -sk``sdd , sdf
我們懷疑我們有高 CPU 負載 avrg 的事實是因為實際上在磁碟上執行的“du -sk”
所以我在想我們可以針對以下行為做些什麼
一種選擇可能是禁用“
du -sk
”驗證HDFS
,但不知道該怎麼做第二種選擇是想想究竟是什麼導致了這個
D
狀態?我不確定……但也許升級核心版本將有助於避免 D 狀態?要不然?(比如禁用 CPU 執行緒)等?
更多細節
lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 48 On-line CPU(s) list: 0-47 Thread(s) per core: 2 Core(s) per socket: 12 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6
CPU LOAD AVRG 約為 42-45(15 分鐘 avrg)
參考 :
https://www.golinuxhub.com/2018/05/how-to-disable-or-enable-hyper/
平均負載不是純粹的 CPU 負載,它是作為通用指標引入的,以允許共享機器上的使用者快速查看機器的“繁忙程度”。這就是為什麼導致大量磁碟活動的程序的計數方式與使用 CPU 的程序相同。
因此,這不是您要用於調整的指標。
D
如果文件系統程式不當,就會出現處於狀態的程序,這在 90 年代的 NFS 中一直是煩惱的根源。從性能的角度來看,沒有在信號後清理的文件系統和有清理的文件系統之間沒有區別。該
D
狀態僅存在於缺乏適當清理機制並且必須遵循正常請求流的文件系統,即使它們所代表的程序已被中斷或終止。