歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

使用內存文件系統後系統內存統計方法

使用內存文件系統後系統內存統計方法   【問題描述】    在Linux系統中,內存可以分出一部分空間作為磁盤來使用,稱為Ramdisk。這部分內存空間具有高速讀寫  www.2cto.com   特性,可以存儲那些對磁盤IO要求較高的數據,顯著的提升系統的服務性能。    Ramdisk分為兩種,一種是固定空間大小的空間,跟硬盤分區完全一樣,可以格式化並掛載使用;一種是以 內存文件系統tmpfs的形式出現,可以根據需要擴充和縮小。這兩種使用方式在kernel 2.4之後都得到了支 持。    在使用tmpfs時,因為不是一次分配,且對內存分配的形式比較模糊,使得怎樣計算系統整體內存使用情況 成為一個問題。   【觀察和解決】    在使用ubuntu系統時,對使用Ramdisk的形式做了簡單測試,發現在使用和不使用Ramdisk的時候有奇怪 的問題發生。具體如下:    內存分區無數據時的情況如下,    root@peter:~# free -m                 total       used       free     shared    buffers     cached    Mem:          3851       2222       1629          0         63        847    -/+ buffers/cache:       1310       2540    Swap:         1925          0       1925    root@peter:~# df -h    Filesystem      Size  Used Avail Use% Mounted on    /dev/sda3       125G  4.9G  114G   5% /    udev            1.9G  4.0K  1.9G   1% /dev    tmpfs           771M  888K  770M   1% /run    none            5.0M     0  5.0M   0% /run/lock    none            1.9G  7.4M  1.9G   1% /run/shm    向內存分區寫入1G數據時的情況如下,    root@peter:/run/shm# dd if=/dev/zero ibs=1M count=1024 of=./test.img    1024+0 records in    2097152+0 records out    1073741824 bytes (1.1 GB) copied, 2.22898 s, 482 MB/s    root@peter:/run/shm# df -h    Filesystem      Size  Used Avail Use% Mounted on    /dev/sda3       125G  4.9G  114G   5% /    udev            1.9G  4.0K  1.9G   1% /dev    tmpfs           771M  888K  770M   1% /run    none            5.0M     0  5.0M   0% /run/lock    none            1.9G  1.1G  895M  54% /run/shm    root@peter:/run/shm# free -m                 total       used       free     shared    buffers     cached    Mem:          3851       3245        605          0         64       1871    -/+ buffers/cache:       1309       2541    Swap:         1925          0       1925    前後數據對比發現主要增加的是cached數據的統計量,而實際使用的內存1309幾乎和之前沒有變化。可以 大概認為向內存分區中寫入的數據實際是增大了cached的統計量。為了進一步說明這個情況,可以釋放掉系統 的cached數據     root@peter:/run/shm# sync; echo "3" > /proc/sys/vm/drop_caches     root@peter:/run/shm# free -m                   total       used       free     shared    buffers     cached     Mem:          3851       2694       1156          0          0       1401     -/+ buffers/cache:       1292       2558     Swap:         1925          0       1925     由於/run/shm分區中實際存儲了1.1G的數據,cached並沒有被完全使用,可以說明存放到內存分區的 數據實際是在cached的統計數據中。     最後釋放掉內存分區的數據並清理系統緩存後的情況如下     root@peter:/run/shm# rm -fr test.img     root@peter:/run/shm# free -m                   total       used       free     shared    buffers     cached     Mem:          3851       1676       2174          0          7        370     -/+ buffers/cache:       1297       2553     Swap:         1925          0       1925     root@peter:/run/shm# df -h     Filesystem      Size  Used Avail Use% Mounted on     /dev/sda3       125G  4.9G  114G   5% /     udev            1.9G  4.0K  1.9G   1% /dev     tmpfs           771M  888K  770M   1% /run     none            5.0M     0  5.0M   0% /run/lock     none            1.9G  7.4M  1.9G   1% /run/shm       至此,可以發現,在使用內存分區的系統中,實際使用的內存數據,應該是free -m獲得使用內存情況加 上內存區中的數據量,這才是系統真正使用的內存量。   【總結】     在使用內存文件系統存儲數據的系統中,分析內存時要充分的考慮內存文件系統的數據用量,進而准確的 給出系統所使用內存的情況,整體把握系統的資源情況,為進一步的系統分析做准備。
Copyright © Linux教程網 All Rights Reserved