Linux釋放記憶體快取

2021-07-26 13:48:35 字數 1569 閱讀 1964

問題描述:

一台伺服器執行著3個tomcat,伺服器記憶體為128g,有一天發現記憶體使用95%了,

網上搜尋了下,說是通過設定環境變數來改變arena的數量,例如export malloc_arena_max=1 內容寫的比較複雜,可能是glibc為了分配記憶體的效能的問題,也可能是jdk版本的問題,如下:

[root@server05 tomcat1]# sync 注意:在清空快取之前使用sync命令同步資料到磁碟

[root@server05 tomcat1]# cat /proc/sys/vm/drop_caches

0[root@server05 tomcat1]#  free -m

total       used       free     shared    buffers     cached

mem:        129007     125052       3955          0        255       4008

-/+ buffers/cache:     120788       8219

swap:         7999          0       7999

[root@server05 tomcat1]# echo 3 > /proc/sys/vm/drop_caches

[root@server05 ~]# free -g //發現快取明顯減少了

total       used       free     shared    buffers     cached

mem:           125          4        121          0          0          0

-/+ buffers/cache:          4        121

swap:            7          0          7

釋放後在修改回去echo 0 > /proc/sys/vm/drop_caches,啟動tomcat業務,正常了。

參考: drop_caches

writing to this will cause thekernel to drop clean caches, dentries and

inodes from memory, causing thatmemory to become free.

to free pagecache:

echo1 > /proc/sys/vm/drop_caches

to free dentries and inodes:

echo2 > /proc/sys/vm/drop_caches

to free pagecache, dentries andinodes:

echo3 > /proc/sys/vm/drop_caches

as this is a non-destructiveoperation and dirty objects are not freeable, the

user should run `sync' first.

預設是0,1表示清空頁快取,2表示清空inode和目錄樹快取,3清空所有的快取

Linux系統手動釋放記憶體快取

linux釋放記憶體的命令 sync echo 1 proc sys vm drop caches drop caches的值可以是0 3之間的數字,代表不同的含義 0 不釋放 系統預設值 1 釋放頁快取 2 釋放dentries和inodes 3 釋放所有快取 釋放完記憶體後改回去讓系統重新自動分...

如何為linux釋放記憶體和快取

如何為linux釋放記憶體和快取 在linux系統下,我們一般不需要去釋放記憶體,因為系統已經將記憶體管理的很好。但是凡事也有例外,有的時候記憶體會被快取占用掉,導致系統使用swap空間影響效能,此時就需要執行釋放記憶體 清理快取 的操作了。linux系統的快取機制是相當先進的,他會針對dentry...

Linux釋放記憶體

首先,檢視 proc sys vm drop caches的值 root server test cat proc sys vm drop caches 0值預設為0 然後,執行sync命令 root server test sync 手動執行sync命令 描述 sync 命令執行 sync 子例程...