linux 跑的apache,apache工作模式有 Prefork、Worker和 Event 三種,分別是基於進程、線程、綜合模式。

本文中使用的apache是 Event 模式,在訪問量上來之後,linux服務器總共60G的內存佔用持續升高,於是將內存容量擴大,升高至120G。經過一段時間後發現,內存佔用繼續升高,幾乎將120G佔滿,網站訪問速度急速下降,頁面打開時間甚至到達10s。

最先採取措施是重啓linux服務器以此來釋放內存,但是內存不到半個月幾乎又要被佔滿了,於是在網上搜尋一下方法,以供參考。

第一部: 首先講一個命令:free 來查看下服務器內存的使用情況

[root@localhost ~]# free -m

total used free shared buffers cached

Mem: 2703 1013 1690 0 116 235

-/+ buffers/cache: 660 2043

Swap: 3999 0 3999

先來解釋第一行:

Mem的 Total=used+free used使用內存 free空閒內存

shared 表示被幾個進程共享的內存的。

buffer 緩衝 是用於存放要輸出到disk(塊設備)的數據。

是根據磁盤的讀寫 設計的,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反覆尋道,

從而提高系統性能。

cache 緩存 是存放從disk上讀出的數據。是把讀取過的數據保存起來,重新讀取時若命中(找到需要的數據)就不 要去讀硬盤了,若沒有命中就讀硬盤。其中的數據會根據讀取頻率進行組織,把最頻繁讀取的內容放在 最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。

如果cache 的值很大,說明cache住的文件數很多。如果頻繁訪問到的文件都能被cache住,那麼磁 盤的讀IO bi會非常小。

第二行:

這一行表示兩項 -buffers/cache 和 + buffers/cache

-buffers/cache = used -(buffers+cache) 表示使用的內存中不計算buffers和cache,系統使用內存量

+ buffers/cache =free+( buffers+cache) 表示系統空閒內存與buffers、cache的和

第三行:

交換內存 使用量 空限量

第二部:修改drop_cache 文件,手工釋放內存

/proc是一個虛擬文件系統,我們可以通過對它的讀寫操作做爲與kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行爲做出調整。

那麼我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。操作如下:

root@server test]# cat /proc/sys/vm/drop_caches

0

/proc/sys/vm/drop_caches的值,默認爲0。

[root@server test]# sync

手動執行sync命令(描述:sync 命令運行 sync 子例程。如果必須停止系統,則運行sync 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)

[root@server test]# echo 3 > /proc/sys/vm/drop_caches

[root@server test]# cat /proc/sys/vm/drop_caches

3

將/proc/sys/vm/drop_caches值設爲3

第三部:drop_caches的詳細文檔如下:

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache: 清空 頁面 高速緩存

* echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes: 清空 目錄項 和 索引節點

* echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes: 清空以上兩項

* echo 3 > /proc/sys/vm/drop_caches

從man可以看到,這值從2.6.16以後的核心版本才提供,也就是老版的操作系統都是沒有這個的。

原文:https://blog.csdn.net/zonghua521/article/details/78238886

查看原文 >>
相關文章