[問題] 想要降低load average
我近期在類似樹梅派這樣的單板電腦上架構了一個應用,大約由10支程式獨立程式構
成,程式部分以C++跟python編寫,主要用途是藉由板子上的UART與外部設備通訊、
讀取ADC,用GPIO控制周邊電路。
程式跟程式間我使用redis進行資料交換,程式架構的虛擬碼大致如下:
while(true) {
// 從redis讀取別的程式產生的資料
...
// UART通訊 or 讀ADC or 操作GPIO
...
// 將讀到的值或執行的結果寫入redis
...
// 延遲若干時間讓CPU得以休息
// C++用std::this_thread::sleep_for()
// Python用time.sleep()
delay(n);
}
這種結構是我以前寫MCU或RTOS常使用的程式架構。
今天查資料時偶然知道uptime跟free這類效能監控命令,結果發現load average
異常的高,在單核心CPU下1、5、30分鐘的監測值都落在8.x~10.x之間,至於記憶
體使用量倒是還好,平均都還有25%的閒置(free)空間。以top觀看CPU使用率較高
的程式都是我編寫的,其他service等使用量都不高。我有嘗試去加長delay時間,
delay要直到秒級才有比較明顯的效果,但這麼長的delay有點不實際。
由於接觸linux程式設計時間並不長,不太知道這類問題要怎麼下關鍵字找資料比
較正確,所以想請問各位先進尋求建議,讓我有個方向可以解決這個現象。
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.83.240 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1611068487.A.576.html
→
01/20 00:29,
3年前
, 1F
01/20 00:29, 1F
→
01/20 00:30,
3年前
, 2F
01/20 00:30, 2F
推
01/20 09:31,
3年前
, 3F
01/20 09:31, 3F
→
01/20 12:54,
3年前
, 4F
01/20 12:54, 4F
推
01/21 01:17,
3年前
, 5F
01/21 01:17, 5F
→
01/21 01:17,
3年前
, 6F
01/21 01:17, 6F
→
01/22 19:38,
3年前
, 7F
01/22 19:38, 7F
推
02/02 00:03, , 8F
02/02 00:03, 8F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章