本篇將介紹伺服器記憶體使用率過高的處理方案。
記憶體方面主要關注兩個問題,第一:物理記憶體夠不夠用;第二:有沒有記憶體洩露。
在linux系統中,free
、top
、vmstat
等命令都會有系統記憶體使用率的輸出:
程序占用 過多
執行時間太久
被植入異常木馬
記憶體洩漏
檢視記憶體佔用率top10的程序:
ps aux| grep -v "user" |sort -n -r -k 4 | awk '' | head -n 10
或者使用top命令檢視,top -c
,然後按m。
如果程序都正常的話,可以考慮重啟部分應用,如果有異常程序,考慮是否被植入木馬,找到對應的程序指令碼,kill掉即可。
如果cache太多,共享記憶體不足,可以在不重啟機器的情況下釋放快取:
root@iz2zeic9ggky8lb31din1gz:~# sync
root@iz2zeic9ggky8lb31din1gz:~# echo 3> /proc/sys/vm/drop_caches
我們在觀察linux的記憶體使用情況時,只要沒發現用swap的交換空間,就不用擔心自己的記憶體太少。如果常常看到swap用了很多,那麼你就要考慮加物理記憶體了。這也是在linux伺服器上看記憶體是否夠用的標準。 mongodb記憶體使用率過高問題排查
1.在生產環境中,若不限制moongo對記憶體的使用,會導致mongo集群記憶體使用率飆公升。2.物理記憶體和虛擬記憶體區別 物理記憶體和虛擬記憶體 物理記憶體 真正的記憶體 虛擬記憶體 磁碟空間虛擬出的記憶體 3.記憶體飆公升的解決方法 通過設定 config,shard cachesize的大小...
頻繁讀寫檔案導致記憶體使用率過高
最近接到乙個客戶反饋,說是伺服器記憶體使用過高,總記憶體16g,使用top命令檢視可用記憶體已經不足1g了。客戶環境伺服器為linux,部署了3個tomcat,每個tomcat均有大量的日誌產生。讓客戶使用free m檢查一下 此處有必要解釋一下free命令返回的各個引數的意思 直接轉了 解釋 可用...
Redis 記憶體使用率
1 redis cli命令列介面訪問到redis伺服器 2 輸入info memory命令,返回與記憶體相關的資料。used memory 由 redis 分配器分配的記憶體總量,包含了redis程序內部的開銷和資料占用的記憶體,以位元組 byte 為單位 used memory human 已更直...