| 
                         命令输出: 
- robert@robert-ubuntu1410:~$ free 
 -             total       used       free     shared    buffers     cached 
 - Mem:      2049416    1646480     402936      13280     118596     646288 
 - -/+ buffers/cache:    881596    1167820 
 - Swap:     2095100       1480    2093620 
 
  
内存使用并不只有简单的占用和空闲两个状态,从上面的输出发现里面有buffer和cache的数据,从字面意义上来讲,都是缓存,那么弄清楚缓存什么数据才能有效的区分这两种缓存。 
从上面命令的输出,我们可以看到,Buffer 118M, Cache  646M。其实,这两个内存区域都是用来缓存磁盘数据的,只不过缓存的数据是不同的: 
    - buffers一般都不太大,在一个通用的Linux系统中,一般都是在几十到几百M字节,用于存储磁盘块设备的元数据,比如哪些块属于哪些文件,文件的权限,目录等信息。
 
    - cached一般会很大, 一般都是G字节以上, 用于存储读写文件的页, 当对一个文件进行读的时候,  会取磁盘文件页到此内存区域,然后从内存进行读取,当写入一个文件,会先写到此缓存,并将相关的页面标记为”dirty”。
 
 
buffers用于存储元数据,一般占用的空间不大,对它的关注也不多,cached一般会很大,随着读写磁盘的多少而自动的增加而减少,这也取决于物理内存是否够用,如果应用使用物理内存较多,操作系统会适当的缩小cached来保证用户进程对内存的需要。 
2、pmap 
此命令用来报告进程占用内存的详细情况,可以用来查出某些内存瓶颈问题的根源原因。 
使用方式: 
- pmap -d 2862 
 
  
命令输出: 
- robert@robert-ubuntu1410:~$ pmap -d 2862 
 - 2862:  java -server -Xms512m -Xmx512m -Xmn128m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCDetails -Xloggc:./logs/gc.log -cp /home/robert/working/workspace/vesta-id-generator/releases/vesta-id-generator-0.0.1-release/bin/vesta-rest-0.0.1/extlib -jar ./lib/vesta-rest-0.0. 
 - Address           Kbytes Mode  Offset           Device    Mapping 
 - 0000000008048000       4 r-x-- 0000000000000000 008:00001 java 
 - 0000000008049000       4 rw--- 0000000000000000 008:00001 java 
 - 000000000a017000     872 rw--- 0000000000000000 000:00000   [ anon ] 
 - 00000000be800000     896 rw--- 0000000000000000 000:00000   [ anon ] 
 - 00000000be8e0000     128 ----- 0000000000000000 000:00000   [ anon ] 
 - 00000000be900000    1920 rw--- 0000000000000000 000:00000   [ anon ] 
 - 00000000beae0000     128 ----- 0000000000000000 000:00000   [ anon ] 
 - 00000000beb00000     284 rw--- 0000000000000000 000:00000   [ anon ] 
 - ...... 
 
  
这个命令显示比较底层的进程模块占用内存的信息,并且可以打印内存的起止地址等,用于定位深层次JVM或者操作系统的内存问题。 
04.CPU使用情况监控命令 
1、vmstat 
此命令显示关于内核线程、虚拟内存、磁盘IO、陷阱和CPU占用率的统计信息。 
使用方式: 
- vmstat 
 
  
                        (编辑:91站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |