Re: [問題] Load Average 過高會惡性循環嗎?
※ 引述《lottemarines (一平)》之銘言:
: 小弟的網站因為最近比較熱門,上站的人比較多,有時會突然出現
: Load Average 飆高到100+ 的情形
: 其實之前偶然會發生,但是最近發現好像跟上站人數有相關性
: 網路爬文爬到這一篇文章這樣敘述:
: http://www.lslnet.com/linux/f/docs1/i16/big5177963.htm
: 當負載達到20或30以後,系統很可能就處於反饋循環狀態(被視為處於競爭狀態),
: 此時新進程的創建速度要快於系統運行這些新進程的速度。這只會導致服務速度降低
: 和加載速度降慢,也就是「死鎖」。為返回到正常狀態,服務器需要花費大量的時間
: 加載所有進程,或者系統乾脆陷入死鎖狀態,永遠也恢復不了。
: 由於小弟我現在看,就算沒啥人的情況下,主機的Load Average 也有0.5
: 因此熱門的情形下飆高是有可能的,但是一飆高就殺到100+讓整個系統都當掉
: 而且top出來之後都是 apache2 的行程,如果換主機就能改善,那就好了。
: 有人曾經遇過類似問題的嗎?
: 小弟的主機是 amd 2600+ 1GDDR
如果你的主機記憶體太小的話,你會發現只要行程多一點硬碟就會一直閃,這十之八九
是在作 swap-in 跟 swap-out 這件事。平心而論 swap 這個動作除了浪費你的 CPU 時
間之外對於系統沒有任何幫助,因為它都在作虛功,把記憶體裡的東西暫存到硬碟再將
硬碟中的資料搬回到記憶體。
改善方式:增加 ram,特別是現在記憶體便宜得跟什麼一樣,如果你把記憶體加至 4G
(記得換支援 4G 以上的核心)應該會大大改善你的效能問題。
祝好運!!
p.s. Linux 32-bit 版本最高可以支援到 64 GB 的 RAM,所以不用急著升級到 64-bit
Linux,以下是我的主記憶體資料:
00:14/0 [xxx@xxx] ~ $ free -m
total used free shared buffers cached
Mem: 12170 8811 3358 0 509 7013
-/+ buffers/cache: 1288 10881
Swap: 9538 0 9538
--
不大啦,只有 12 G的主記憶體而己,科科!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.97.67
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):