Linux
新的 64 位 linux 系統有正常程序(ps、grep 等)佔用過多的 VIRT 記憶體
我們剛剛從 32 位機器遷移到 64 位機器。儘管新盒子的記憶體是舊盒子的兩倍,但我們很快就用完了記憶體。
執行一個簡單的 ps 命令將說明問題。
新機:
132 prod-Charlotte1-node1 ~/public_html/rearch/cgi-bin> ps aux | grep ps root 293 0.0 0.0 0 0 ? S< May09 0:00 [kpsmoused] xamine 2267 1.0 0.0 63728 928 pts/3 R+ 16:50 0:00 ps aux xamine 2268 0.0 0.0 61172 752 pts/3 S+ 16:50 0:00 grep ps
老機器:
132 prod-116431-node1:/home/xamine> ps aux | grep ps xamine 23191 0.0 0.0 2332 768 pts/6 R+ 15:41 0:00 ps aux xamine 23192 0.0 0.0 3668 692 pts/6 S+ 15:41 0:00 grep ps
請注意,ps 程序使用 63M 的 VIRT 記憶體,而舊機器上的記憶體為 2。
新機:
- Enterprise Linux Enterprise Linux Server 5.4 版 (Carthage)
- 紅帽企業 Linux 伺服器 5.4 版(標準)
老機器:
- 紅帽企業 Linux ES 第 4 版(Nahant 更新 4)
取決於您如何計算已用記憶體。如果您正在查看“免費”,請確保將使用的記憶體和緩衝區打折。
Linux 嘗試盡可能多地記憶體磁碟活動,以便後續訪問這些文件比再次訪問磁碟要快得多。如果需要記憶體,將釋放記憶體記憶體以滿足新的請求。
例如:
# free total used free shared buffers cached Mem: 3973040 3944864 28176 0 433448 3123468 -/+ buffers/cache: 387948 3585092 Swap: 2040244 72080 1968164
在這種情況下,雖然系統報告幾乎所有 4G 記憶體都已使用,但仔細檢查顯示其中的 3G 已“記憶體”,這意味著實際上有大量可用記憶體。輸出的第二行
free
表示該計算——不包括緩衝區和記憶體,有 3.5G 可用記憶體。