Linux記憶體高,觸發oom-killer問題解決

來源:互聯網
上載者:User

最近遇到兩起Linux的記憶體問題,其一是觸發了oom-killer導致系統掛

1. 首先確認該系統的版本是32位

#uname -aLinux alarm 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386

2. 我們瞭解一下32位Linux的記憶體管理結構

# DMA: 0x00000000 -  0x00999999 (0 - 16 MB)# LowMem: 0x01000000 - 0x037999999 (16 - 896 MB) - size: 880MB# HighMem: 0x038000000 - <硬體特定> 

    核心使用low memory來跟蹤所有的記憶體配置,這樣的話一個16GB記憶體的系統比一個4GB記憶體的系統,需要消耗更多的low memory,當low memory耗盡,即便系統仍然有剩餘記憶體,仍然會觸發oom-killer。在2.6核心的表現是,殺掉佔用記憶體最高的進程,所以會導致sshd等進程被殺掉,造成系統無法登入。

3. 如何查看lowMem

-bash-3.00# free -lm
total used free shared buffers cached
Mem: 2026 1973 52 0 36 1303
Low: 874 823 51
High: 1151 1150 1
-/+ buffers/cache: 633 1392
Swap: 3067 142 2924

4. 所以我們需要保護LowMem,在2.6核心引入了lower_zone_protection,這將讓核心願意保護low memory,從而在分配記憶體時優先考慮從high memory分配。

-bash-3.00# cat /proc/sys/vm/lower_zone_protection0-bash-3.00#echo 400 > /proc/sys/vm/lower_zone_protection

 另一起問題是24G記憶體的系統,空閑記憶體已經不到50M

1. 確認該系統的版本是64位

# uname -aLinux gxgd-nms-app 2.6.18-194.el5xen #1 SMP Tue Mar 16 22:01:26 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

2. 用ps查看各進程的記憶體,大約就佔用了4G, 絕大部分記憶體都是被Page Cache所佔用。Linux核心的策略是最大程度的利用記憶體cache 檔案系統的資料,提高IO速度,雖然在機制上是有進程需要更大的記憶體時,會自動釋放Page Cache,但不排除釋放不及時或者釋放的記憶體由於存在片段不滿足進程的記憶體需求。

   所以我們需要一個方法,能夠限定PageCache的上限。

Linux 提供了這樣一個參數min_free_kbytes,用來確定系統開始回收記憶體的閥值,控制系統的空閑記憶體。值越高,核心越早開始回收記憶體,空閑記憶體越高。

[root@zyite-app01 root]# cat /proc/sys/vm/min_free_kbytes163840echo 963840 > /proc/sys/vm/min_free_kbytes

其他可選的臨時解決方案:

關閉oom-killer

cat /proc/sys/vm/oom-kill
echo "0" > /proc/sys/vm/oom-kill
vi /etc/sysctl.conf
  vm.oom-kill = 0

2. 清空cache (可選)
echo 1 > /proc/sys/vm/drop_caches

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.