常見三大伺服器負載問題有記憶體空間不足而無法載入應用,快取檔案時記憶體空間不足和過於頻繁地使用記憶體交換。解決這三類問題可以基於Linux記憶體使用率最佳實踐最佳化伺服器,如將不活躍記憶體移到交換區。當然,在解決難題之前,每個獨立的負載問題要求Linux記憶體分析。下面就讓我們分別看看這三大問題該如何解決。 記憶體空間不足而無法載入應用 讓一臺沒有足夠記憶體的伺服器去載入應用,這會出現記憶體短缺的情況。伺服器會在緩衝區顯示相對有限的記憶體數量,相應地,交換空間也使用得多。最簡單的方法就是新增更多記憶體。不過最佳化Linux記憶體交換也能提升效能。確保不活躍記憶體頁儘早交換出去,為所需的記憶體頁騰出空間。 快取檔案時記憶體空間不足 如果你感覺快取檔案可能會出現記憶體不足的話,按照下面方法計算:如果可用快取與快取記憶體低於總RAM的30%,那麼伺服器可能遭遇記憶體不足。接下來檢查/proc/meminfo的內容。如果不活躍(檔案)記憶體總量明顯高於快取總量,那麼伺服器沒有足夠可用記憶體去快取檔案。在釋放更多快取時,首先查明是何種原因導致短缺。 如果Linux載入的程式要求太多記憶體的話,除了新增更多物理RAM記憶體別無他法。然而,使用記憶體的系統其它部分也可能導致快取短缺。例如,將修改後的檔案提交到磁碟可能需要很長時間。如果是這樣,你會在投個程式中看到一個相對高的wa(等待I/O)引數,在/proc/meminfo會看見Dirty引數有個相對較高的值。如果是這樣,修改磁碟效能是關鍵,能獲得更好的記憶體效能。 記憶體交換用得太頻繁 如果交換用得太多,vmstat監控工具會顯示高si與so(換進與換出)動作。交換空間幾乎填滿,伺服器可能的免費記憶體很低。 為了最佳化Linux記憶體,首先調查交換頻繁的根源。通常,如果只有不活躍記憶體在交換區,那就不該有壓力。在/proc/meminfo中,看交換量是否用得比不活躍記憶體的量還多。如果是,活躍記憶體頁交換得很好,就算Linux核心需要經常訪問活躍記憶體頁。系統需要更多物理記憶體。 如果交換處於壓力下,並分配了大量快取,透過增加swappiness引數,可在伺服器上減輕記憶體負載。更高的swappiness值讓核心更快將記憶體頁放到磁碟,減輕來自快取的壓力,讓活躍記憶體得到更多可用記憶體。 更高的swappiness引數實際上降低了磁碟震盪,震盪通常由頁頻繁地換入換出而引起。增加的swappiness只是確保頁移到應該待的交換區,使得伺服器上的交換動作緩慢下來。
常見三大伺服器負載問題有記憶體空間不足而無法載入應用,快取檔案時記憶體空間不足和過於頻繁地使用記憶體交換。解決這三類問題可以基於Linux記憶體使用率最佳實踐最佳化伺服器,如將不活躍記憶體移到交換區。當然,在解決難題之前,每個獨立的負載問題要求Linux記憶體分析。下面就讓我們分別看看這三大問題該如何解決。 記憶體空間不足而無法載入應用 讓一臺沒有足夠記憶體的伺服器去載入應用,這會出現記憶體短缺的情況。伺服器會在緩衝區顯示相對有限的記憶體數量,相應地,交換空間也使用得多。最簡單的方法就是新增更多記憶體。不過最佳化Linux記憶體交換也能提升效能。確保不活躍記憶體頁儘早交換出去,為所需的記憶體頁騰出空間。 快取檔案時記憶體空間不足 如果你感覺快取檔案可能會出現記憶體不足的話,按照下面方法計算:如果可用快取與快取記憶體低於總RAM的30%,那麼伺服器可能遭遇記憶體不足。接下來檢查/proc/meminfo的內容。如果不活躍(檔案)記憶體總量明顯高於快取總量,那麼伺服器沒有足夠可用記憶體去快取檔案。在釋放更多快取時,首先查明是何種原因導致短缺。 如果Linux載入的程式要求太多記憶體的話,除了新增更多物理RAM記憶體別無他法。然而,使用記憶體的系統其它部分也可能導致快取短缺。例如,將修改後的檔案提交到磁碟可能需要很長時間。如果是這樣,你會在投個程式中看到一個相對高的wa(等待I/O)引數,在/proc/meminfo會看見Dirty引數有個相對較高的值。如果是這樣,修改磁碟效能是關鍵,能獲得更好的記憶體效能。 記憶體交換用得太頻繁 如果交換用得太多,vmstat監控工具會顯示高si與so(換進與換出)動作。交換空間幾乎填滿,伺服器可能的免費記憶體很低。 為了最佳化Linux記憶體,首先調查交換頻繁的根源。通常,如果只有不活躍記憶體在交換區,那就不該有壓力。在/proc/meminfo中,看交換量是否用得比不活躍記憶體的量還多。如果是,活躍記憶體頁交換得很好,就算Linux核心需要經常訪問活躍記憶體頁。系統需要更多物理記憶體。 如果交換處於壓力下,並分配了大量快取,透過增加swappiness引數,可在伺服器上減輕記憶體負載。更高的swappiness值讓核心更快將記憶體頁放到磁碟,減輕來自快取的壓力,讓活躍記憶體得到更多可用記憶體。 更高的swappiness引數實際上降低了磁碟震盪,震盪通常由頁頻繁地換入換出而引起。增加的swappiness只是確保頁移到應該待的交換區,使得伺服器上的交換動作緩慢下來。