Re: [問題] Load Average 過高會惡性循環嗎?

看板Linux作者 (wyvernlee)時間17年前 (2009/03/24 00:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #19nxNVyp (Linux)
文章代碼(AID): #19nxNVyp (Linux)