Linux提供了对物理内存进行合理、高效的访问并可以访问潜在的海量虚存的技术。虚存通常稍多于操作系统实际拥有的内存容量,以便将较少使用的数据卸载到磁盘存储器上,同时又呈现出系统拥有大量物理内存的假象。糟糕的是,卸载内存的开销可能会比应用延迟高出数十甚至上百倍。如果被换出到磁盘上的内存空间是错误的内存页,或者如果应用程序的当前内存印迹大于物理内存容量的话,那么这些过高的延迟会极大地影响应用的响应时间。

许多性能问题都是由于内存不足而引起操作系统的交换。因此,有必要利用一些工具来监视内存的使用情况, 例如,每个进程或线程的内核内存占用量,以及内核数据结构的内存使用机制及其数量和大小。与 CPU利用情况一样, 理解操作系统和各个进程的行为对于跟踪内存短缺所引起的任何性能问题至关重要。

一、/proc/meminfo与/proc/slabinfo

linux 在/proc文件系统中提供了可以监视系统内存资源整体利用情况的工具,即/proc/meminfo和/proc/slabinfo。 这两个文件可以捕获物理内存的状态。 /proc/meminfo的部分显示结果如下所示 :

MemTotal:        8193720 kB
MemFree: 1360188 kB
Buffers: 52580 kB
Cached: 5048416 kB
SwapCached: 117912 kB
Active: 2394100 kB
Inactive: 3969480 kB
Active(anon): 890840 kB
Inactive(anon): 607480 kB
Active(file): 1503260 kB
Inactive(file): 3362000 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4128760 kB
SwapFree: 276380 kB
Dirty: 364 kB
Writeback: 0 kB
AnonPages: 1144908 kB
Mapped: 101328 kB
Shmem: 235736 kB
Slab: 321044 kB
SReclaimable: 235768 kB
SUnreclaim: 85276 kB
KernelStack: 7392 kB
PageTables: 64532 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8225620 kB
Committed_AS: 180158196 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 289596 kB
VmallocChunk: 34359446152 kB
HardwareCorrupted: 0 kB
AnonHugePages: 456704 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 10240 kB
DirectMap2M: 8378368 kB
[huangc@V-02-01-00860 ~]$
  • MemTotal:显示了物理内存总量。
  • MemFree:显示了未用内存的总量。
  • Buffers:对应于 I/O操作的缓冲区 cache,用来给文件做缓冲大小。
  • Cached:表示从磁盘上读取文件时所用的内存大,被高速缓冲储存器用的内存的大小 。
  • SwapCached:表示已被换出到交换空间中的内存缓存大小,被高速缓冲储存器用的交换空间的大小,其仍然被存放在swapfile中,用来在需要的时候很快的被替换而不需要再次打开I/O端口。
  • Active: 在活跃使用中的缓冲或高速缓冲储存器页面文件的大小,除非非常必要否则不会被移作他用。
  • Inactive: 在不经常使用中的缓冲或高速缓冲储存器页面的大小,可能被用于其他用途。
  • SwapTotal:表示用于交换用途的磁盘内存大小。如果基于 IA32的系统拥有 1GB以上的物理内存,则 HighTotal为非零值。
  • HighTotal:对应高于 860MB的物理内存。
  • LowTotal:是内核使用的内存。 
  • Mapped:对应于被内存映射的文件大小。
  • Slab:表示为内核数据结构分配的内存。

二、ps
 
    要获知特定进程中的内存使用情况,可以使用ps工具来获取每个进程的内存占用情况:
[solarflar@localhost ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 52876 15652 ? Ss 8月09 2:49 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 8月09 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 8月09 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 8月09 0:00 [kworker/0:0H]
root 8 0.0 0.0 0 0 ? S 8月09 0:00 [migration/0]
root 9 0.0 0.0 0 0 ? S 8月09 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 8月09 0:00 [rcuob/0]
root 11 0.0 0.0 0 0 ? S 8月09 0:00 [rcuob/1]
root 12 0.0 0.0 0 0 ? S 8月09 0:00 [rcuob/2]
root 13 0.0 0.0 0 0 ? S 8月09 0:00 [rcuob/3]
root 14 0.0 0.0 0 0 ? S 8月09 0:00 [rcuob/4]

ps aux的输出结果显示了每个进程消耗系统内存的总体百分比,以及该进程的虚存印迹(VSZ)和当前使用的物理内存量(RSS)。也可以使用 top(1)通过交互方式对进程列表进行排序,以便查看哪些进程当前消耗的内存最多,以及内存使用情况如何随着系统的运行而变化 。

    当标识出需要关注的进程后,可以查看这些进程的虚址空间布局,从而获知进程当前使用内存的具体分配情况。 /proc/pid/maps包含了进程地址空间的所有映射及其大小,其中 pid是通过 ps(1)或 top(1)命令获得的特定进程 ID。 每个映射显示了被分配的地址范
围、页面的许可权限,以及与该地址范围相关的后备存储器(backing store)(如果存在的话)的位置。 /proc/pid/maps本质上并不是一种性能工具; 然而, 它提供了关于内存分配状况的信息。 例如,出于性能分析的目的,可以确认在虚址空间中的 1GB和 2GB之间是否分配了特定数量的共享内存。可以根据前述的映射图来检查其使用情况 。
    以下是关于进程 ID 30829的输出结果 :
[huangc@V-02-01-00860 ~]$ cat /proc/30829/maps
00400000-0040d000 r-xp 00000000 fd:02 6291478 /home/huangc/linux.x64/bin/hsserver
0050c000-0050d000 rw-p 0000c000 fd:02 6291478 /home/huangc/linux.x64/bin/hsserver
00a35000-02882000 rw-p 00000000 00:00 0 [heap]
3209800000-3209816000 r-xp 00000000 fd:00 1441795 /lib64/libgcc_s-4.4.7-20120601.so.1
3209816000-3209a15000 ---p 00016000 fd:00 1441795 /lib64/libgcc_s-4.4.7-20120601.so.1
3209a15000-3209a16000 rw-p 00015000 fd:00 1441795 /lib64/libgcc_s-4.4.7-20120601.so.1
3209c00000-3209ce8000 r-xp 00000000 fd:00 1709911 /usr/lib64/libstdc++.so.6.0.17
3209ce8000-3209ee8000 ---p 000e8000 fd:00 1709911 /usr/lib64/libstdc++.so.6.0.17
3209ee8000-3209ef0000 r--p 000e8000 fd:00 1709911 /usr/lib64/libstdc++.so.6.0.17
3209ef0000-3209ef2000 rw-p 000f0000 fd:00 1709911 /usr/lib64/libstdc++.so.6.0.17
3209ef2000-3209f07000 rw-p 00000000 00:00 0
3b4d600000-3b4d620000 r-xp 00000000 fd:00 1442337 /lib64/ld-2.12.so
3b4d81f000-3b4d820000 r--p 0001f000 fd:00 1442337 /lib64/ld-2.12.so
3b4d820000-3b4d821000 rw-p 00020000 fd:00 1442337 /lib64/ld-2.12.so
3b4d821000-3b4d822000 rw-p 00000000 00:00 0
3b4da00000-3b4da83000 r-xp 00000000 fd:00 1442339 /lib64/libm-2.12.so
3b4da83000-3b4dc82000 ---p 00083000 fd:00 1442339 /lib64/libm-2.12.so
3b4dc82000-3b4dc83000 r--p 00082000 fd:00 1442339 /lib64/libm-2.12.so
3b4dc83000-3b4dc84000 rw-p 00083000 fd:00 1442339 /lib64/libm-2.12.so
3b4de00000-3b4df8b000 r-xp 00000000 fd:00 1442338 /lib64/libc-2.12.so
3b4df8b000-3b4e18a000 ---p 0018b000 fd:00 1442338 /lib64/libc-2.12.so
3b4e18a000-3b4e18e000 r--p 0018a000 fd:00 1442338 /lib64/libc-2.12.so
3b4e18e000-3b4e18f000 rw-p 0018e000 fd:00 1442338 /lib64/libc-2.12.so
3b4e18f000-3b4e194000 rw-p 00000000 00:00 0
3b4e200000-3b4e202000 r-xp 00000000 fd:00 1442343 /lib64/libdl-2.12.so
3b4e202000-3b4e402000 ---p 00002000 fd:00 1442343 /lib64/libdl-2.12.so
3b4e402000-3b4e403000 r--p 00002000 fd:00 1442343 /lib64/libdl-2.12.so
3b4e403000-3b4e404000 rw-p 00003000 fd:00 1442343 /lib64/libdl-2.12.so
3b4e600000-3b4e617000 r-xp 00000000 fd:00 1441865 /lib64/libpthread-2.12.so
3b4e617000-3b4e817000 ---p 00017000 fd:00 1441865 /lib64/libpthread-2.12.so
3b4e817000-3b4e818000 r--p 00017000 fd:00 1441865 /lib64/libpthread-2.12.so
3b4e818000-3b4e819000 rw-p 00018000 fd:00 1441865 /lib64/libpthread-2.12.so
3b4e819000-3b4e81d000 rw-p 00000000 00:00 0
3b4ea00000-3b4ea15000 r-xp 00000000 fd:00 1442342 /lib64/libz.so.1.2.3
3b4ea15000-3b4ec14000 ---p 00015000 fd:00 1442342 /lib64/libz.so.1.2.3
3b4ec14000-3b4ec15000 r--p 00014000 fd:00 1442342 /lib64/libz.so.1.2.3
3b4ec15000-3b4ec16000 rw-p 00015000 fd:00 1442342 /lib64/libz.so.1.2.3
3b4ee00000-3b4ee07000 r-xp 00000000 fd:00 1442360 /lib64/librt-2.12.so
3b4ee07000-3b4f006000 ---p 00007000 fd:00 1442360 /lib64/librt-2.12.so
3b4f006000-3b4f007000 r--p 00006000 fd:00 1442360 /lib64/librt-2.12.so
3b4f007000-3b4f008000 rw-p 00007000 fd:00 1442360 /lib64/librt-2.12.so
3b57200000-3b57348000 r-xp 00000000 fd:00 1712089 /usr/lib64/libxml2.so.2.7.6
3b57348000-3b57547000 ---p 00148000 fd:00 1712089 /usr/lib64/libxml2.so.2.7.6
3b57547000-3b57551000 rw-p 00147000 fd:00 1712089 /usr/lib64/libxml2.so.2.7.6
3b57551000-3b57552000 rw-p 00000000 00:00 0
3b60200000-3b60216000 r-xp 00000000 fd:00 1442375 /lib64/libnsl-2.12.so
3b60216000-3b60415000 ---p 00016000 fd:00 1442375 /lib64/libnsl-2.12.so
3b60415000-3b60416000 r--p 00015000 fd:00 1442375 /lib64/libnsl-2.12.so
3b60416000-3b60417000 rw-p 00016000 fd:00 1442375 /lib64/libnsl-2.12.so
3b60417000-3b60419000 rw-p 00000000 00:00 0
7f2744000000-7f2744021000 rw-p 00000000 00:00 0
7f2744021000-7f2748000000 ---p 00000000 00:00 0
7f274c000000-7f274c021000 rw-p 00000000 00:00 0
7f274c021000-7f2750000000 ---p 00000000 00:00 0
7f2750000000-7f2750021000 rw-p 00000000 00:00 0
7f2750021000-7f2754000000 ---p 00000000 00:00 0
7f2754000000-7f2754025000 rw-p 00000000 00:00 0
7f2754025000-7f2758000000 ---p 00000000 00:00 0
7f2758000000-7f2758021000 rw-p 00000000 00:00 0
7f2758021000-7f275c000000 ---p 00000000 00:00 0
7f275c000000-7f275c021000 rw-p 00000000 00:00 0
7f275c021000-7f2760000000 ---p 00000000 00:00 0
7f2760000000-7f2760021000 rw-p 00000000 00:00 0
7f2760021000-7f2764000000 ---p 00000000 00:00 0
7f2764000000-7f2764021000 rw-p 00000000 00:00 0
7f2764021000-7f2768000000 ---p 00000000 00:00 0
7f2768000000-7f2768021000 rw-p 00000000 00:00 0
7f2768021000-7f276c000000 ---p 00000000 00:00 0
7f276c000000-7f276c021000 rw-p 00000000 00:00 0
7f276c021000-7f2770000000 ---p 00000000 00:00 0
7f27725f7000-7f27725f8000 ---p 00000000 00:00 0
7f27725f8000-7f2772ff8000 rw-p 00000000 00:00 0
7f2772ff8000-7f2772ff9000 ---p 00000000 00:00 0
7f2772ff9000-7f27739f9000 rw-p 00000000 00:00 0
7f27739f9000-7f27739fa000 ---p 00000000 00:00 0
7f27739fa000-7f27743fa000 rw-p 00000000 00:00 0
7f27743fa000-7f27743fb000 ---p 00000000 00:00 0
7f27743fb000-7f2774dfb000 rw-p 00000000 00:00 0
7f2774dfb000-7f2774dfc000 ---p 00000000 00:00 0
7f2774dfc000-7f27757fc000 rw-p 00000000 00:00 0
7f27757fc000-7f27757fd000 ---p 00000000 00:00 0
7f27757fd000-7f27761fd000 rw-p 00000000 00:00 0
7f27761fd000-7f27761fe000 ---p 00000000 00:00 0
7f27761fe000-7f2776bfe000 rw-p 00000000 00:00 0
7f2776bfe000-7f2776bff000 ---p 00000000 00:00 0
7f2776bff000-7f27775ff000 rw-p 00000000 00:00 0
7f27775ff000-7f2777600000 ---p 00000000 00:00 0
7f2777600000-7f2778000000 rw-p 00000000 00:00 0
7f2778000000-7f2778021000 rw-p 00000000 00:00 0
7f2778021000-7f277c000000 ---p 00000000 00:00 0
7f277e1fd000-7f277e1fe000 ---p 00000000 00:00 0
7f277e1fe000-7f277ebfe000 rw-p 00000000 00:00 0
7f277ebfe000-7f277ebff000 ---p 00000000 00:00 0
7f277ebff000-7f277f5ff000 rw-p 00000000 00:00 0
7f277f5ff000-7f277f600000 ---p 00000000 00:00 0
7f277f600000-7f2780000000 rw-p 00000000 00:00 0
7f2780000000-7f2780021000 rw-p 00000000 00:00 0
7f2780021000-7f2784000000 ---p 00000000 00:00 0
7f27841ed000-7f27841ee000 ---p 00000000 00:00 0
7f27841ee000-7f2784bee000 rw-p 00000000 00:00 0
7f2784bee000-7f2784bef000 ---p 00000000 00:00 0
7f2784bef000-7f27855ef000 rw-p 00000000 00:00 0
7f27855ef000-7f27855f0000 ---p 00000000 00:00 0
7f27855f0000-7f2785ff0000 rw-p 00000000 00:00 0
7f2785ff0000-7f2785ff1000 ---p 00000000 00:00 0
7f2785ff1000-7f27869f1000 rw-p 00000000 00:00 0
7f27869f1000-7f27869f2000 ---p 00000000 00:00 0
7f27869f2000-7f27873f2000 rw-p 00000000 00:00 0
7f27873f2000-7f27873f3000 ---p 00000000 00:00 0
7f27873f3000-7f2787df3000 rw-p 00000000 00:00 0
7f2787df3000-7f2787df4000 ---p 00000000 00:00 0
7f2787df4000-7f27887f4000 rw-p 00000000 00:00 0
7f27887f4000-7f27887f5000 ---p 00000000 00:00 0
7f27887f5000-7f27891f5000 rw-p 00000000 00:00 0
7f27891f5000-7f27891f6000 ---p 00000000 00:00 0
7f27891f6000-7f2789bf6000 rw-p 00000000 00:00 0
7f2789bf6000-7f2789bf7000 ---p 00000000 00:00 0
7f2789bf7000-7f278a5f7000 rw-p 00000000 00:00 0
7f278a5f7000-7f278a5f8000 ---p 00000000 00:00 0
7f278a5f8000-7f278aff8000 rw-p 00000000 00:00 0
7f278aff8000-7f278aff9000 ---p 00000000 00:00 0
7f278aff9000-7f278b9f9000 rw-p 00000000 00:00 0
7f278b9f9000-7f278b9fa000 ---p 00000000 00:00 0
7f278b9fa000-7f278c3fa000 rw-p 00000000 00:00 0
7f278c3fa000-7f278c3fb000 ---p 00000000 00:00 0
7f278c3fb000-7f278cdfb000 rw-p 00000000 00:00 0
7f278cdfb000-7f278cdfc000 ---p 00000000 00:00 0
7f278cdfc000-7f278d7fc000 rw-p 00000000 00:00 0
7f278d7fc000-7f278d7fd000 ---p 00000000 00:00 0
7f278d7fd000-7f278e1fd000 rw-p 00000000 00:00 0
7f278e1fd000-7f278e1fe000 ---p 00000000 00:00 0
7f278e1fe000-7f278ebfe000 rw-p 00000000 00:00 0
7f278ebfe000-7f278ebff000 ---p 00000000 00:00 0
7f278ebff000-7f278f5ff000 rw-p 00000000 00:00 0
7f278f5ff000-7f278f600000 ---p 00000000 00:00 0
7f278f600000-7f2790000000 rw-p 00000000 00:00 0
7f2790000000-7f2790025000 rw-p 00000000 00:00 0
7f2790025000-7f2794000000 ---p 00000000 00:00 0
7f279482a000-7f279482b000 ---p 00000000 00:00 0
7f279482b000-7f279522b000 rw-p 00000000 00:00 0
7f279522b000-7f279522c000 ---p 00000000 00:00 0
7f279522c000-7f2795c2c000 rw-p 00000000 00:00 0
7f2795c2c000-7f2795cad000 rw-s 00000000 00:0f 31411390 /dev/shm/warmstandby_hc#1_statusACDShm
7f2795cad000-7f2796131000 rw-p 00000000 00:00 0
7f2796131000-7f279614c000 r-xp 00000000 fd:02 6291524 /home/huangc/linux.x64/lib/libfsc_f2ospf.so
7f279614c000-7f279624b000 ---p 0001b000 fd:02 6291524 /home/huangc/linux.x64/lib/libfsc_f2ospf.so
7f279624b000-7f279624d000 rw-p 0001a000 fd:02 6291524 /home/huangc/linux.x64/lib/libfsc_f2ospf.so
7f279624d000-7f2796254000 rw-p 00000000 00:00 0
7f2796254000-7f2796275000 r-xp 00000000 fd:02 6291508 /home/huangc/linux.x64/lib/libfsc_channel_f2.so
7f2796275000-7f2796375000 ---p 00021000 fd:02 6291508 /home/huangc/linux.x64/lib/libfsc_channel_f2.so
7f2796375000-7f2796377000 rw-p 00021000 fd:02 6291508 /home/huangc/linux.x64/lib/libfsc_channel_f2.so
7f2796377000-7f27963d4000 r-xp 00000000 fd:02 6291549 /home/huangc/linux.x64/lib/libmc2_mcapi.so
7f27963d4000-7f27964d4000 ---p 0005d000 fd:02 6291549 /home/huangc/linux.x64/lib/libmc2_mcapi.so
7f27964d4000-7f27964d7000 rw-p 0005d000 fd:02 6291549 /home/huangc/linux.x64/lib/libmc2_mcapi.so
7f27964d7000-7f2796530000 rw-p 00000000 00:00 0
7f2796530000-7f2796542000 r-xp 00000000 fd:02 6293484 /home/huangc/Lib/linux.x64/librm_msg.so
7f2796542000-7f2796742000 ---p 00012000 fd:02 6293484 /home/huangc/Lib/linux.x64/librm_msg.so
7f2796742000-7f2796743000 rw-p 00012000 fd:02 6293484 /home/huangc/Lib/linux.x64/librm_msg.so
7f2796743000-7f279675d000 r-xp 00000000 fd:02 6293517 /home/huangc/Lib/linux.x64/libfsc_rmgateway.so
7f279675d000-7f279695d000 ---p 0001a000 fd:02 6293517 /home/huangc/Lib/linux.x64/libfsc_rmgateway.so
7f279695d000-7f279695e000 rw-p 0001a000 fd:02 6293517 /home/huangc/Lib/linux.x64/libfsc_rmgateway.so
7f279695e000-7f2796977000 r-xp 00000000 fd:02 6291539 /home/huangc/linux.x64/lib/libfsc_router.so
7f2796977000-7f2796a76000 ---p 00019000 fd:02 6291539 /home/huangc/linux.x64/lib/libfsc_router.so
7f2796a76000-7f2796a78000 rw-p 00018000 fd:02 6291539 /home/huangc/linux.x64/lib/libfsc_router.so
7f2796a78000-7f2796a8c000 rw-p 00000000 00:00 0
7f2796a8c000-7f2796a9f000 r-xp 00000000 fd:02 6293467 /home/huangc/Lib/linux.x64/libfsc_warm_standby.so (deleted)
7f2796a9f000-7f2796c9e000 ---p 00013000 fd:02 6293467 /home/huangc/Lib/linux.x64/libfsc_warm_standby.so (deleted)
7f2796c9e000-7f2796ca0000 rw-p 00012000 fd:02 6293467 /home/huangc/Lib/linux.x64/libfsc_warm_standby.so (deleted)
7f2796ca0000-7f2796ce4000 r-xp 00000000 fd:02 6293558 /home/huangc/Lib/linux.x64/librm3.so
7f2796ce4000-7f2796ee3000 ---p 00044000 fd:02 6293558 /home/huangc/Lib/linux.x64/librm3.so
7f2796ee3000-7f2796ee6000 rw-p 00043000 fd:02 6293558 /home/huangc/Lib/linux.x64/librm3.so
7f2796ee6000-7f2796f22000 r-xp 00000000 fd:02 6291528 /home/huangc/linux.x64/lib/libfsc_filter_log.so
7f2796f22000-7f2797021000 ---p 0003c000 fd:02 6291528 /home/huangc/linux.x64/lib/libfsc_filter_log.so
7f2797021000-7f2797024000 rw-p 0003b000 fd:02 6291528 /home/huangc/linux.x64/lib/libfsc_filter_log.so
7f2797024000-7f27971d6000 r-xp 00000000 fd:00 1726189 /usr/local/lib64/libcrypto.so.1.0.0
7f27971d6000-7f27973d6000 ---p 001b2000 fd:00 1726189 /usr/local/lib64/libcrypto.so.1.0.0
7f27973d6000-7f27973fc000 rw-p 001b2000 fd:00 1726189 /usr/local/lib64/libcrypto.so.1.0.0
7f27973fc000-7f27973ff000 rw-p 00000000 00:00 0
7f27973ff000-7f279745f000 r-xp 00000000 fd:00 1726229 /usr/local/lib64/libssl.so.1.0.0
7f279745f000-7f279765e000 ---p 00060000 fd:00 1726229 /usr/local/lib64/libssl.so.1.0.0
7f279765e000-7f2797668000 rw-p 0005f000 fd:00 1726229 /usr/local/lib64/libssl.so.1.0.0
7f2797677000-7f279769d000 rw-p 00000000 00:00 0
7f279769d000-7f279769e000 rw-s 00000000 00:0f 31411401 /dev/shm/warmstandby_hc#1.rmgateway
7f279769e000-7f27976a4000 r-xp 00000000 fd:02 6291526 /home/huangc/linux.x64/lib/libfsc_f2security.so
7f27976a4000-7f27977a3000 ---p 00006000 fd:02 6291526 /home/huangc/linux.x64/lib/libfsc_f2security.so
7f27977a3000-7f27977a4000 rw-p 00005000 fd:02 6291526 /home/huangc/linux.x64/lib/libfsc_f2security.so
7f27977a4000-7f27977bf000 r-xp 00000000 fd:02 6291525 /home/huangc/linux.x64/lib/libfsc_f2pack.so
7f27977bf000-7f27978be000 ---p 0001b000 fd:02 6291525 /home/huangc/linux.x64/lib/libfsc_f2pack.so
7f27978be000-7f27978c0000 rw-p 0001a000 fd:02 6291525 /home/huangc/linux.x64/lib/libfsc_f2pack.so
7f27978c0000-7f27978d2000 r-xp 00000000 fd:02 6291523 /home/huangc/linux.x64/lib/libfsc_f2mproxy.so
7f27978d2000-7f27979d2000 ---p 00012000 fd:02 6291523 /home/huangc/linux.x64/lib/libfsc_f2mproxy.so
7f27979d2000-7f27979d3000 rw-p 00012000 fd:02 6291523 /home/huangc/linux.x64/lib/libfsc_f2mproxy.so
7f27979d3000-7f2797aec000 rw-s 00000000 00:0f 31411386 /dev/shm/daemon_ctrl_share
7f2797aec000-7f2797afc000 r-xp 00000000 fd:02 6291519 /home/huangc/linux.x64/lib/libfsc_f2daemon.so
7f2797afc000-7f2797bfc000 ---p 00010000 fd:02 6291519 /home/huangc/linux.x64/lib/libfsc_f2daemon.so
7f2797bfc000-7f2797bfd000 rw-p 00010000 fd:02 6291519 /home/huangc/linux.x64/lib/libfsc_f2daemon.so
7f2797bfd000-7f2797d7d000 rw-p 00000000 00:00 0
7f2797d7d000-7f2797d96000 r-xp 00000000 fd:02 6291516 /home/huangc/linux.x64/lib/libfsc_esbmsg.so
7f2797d96000-7f2797e95000 ---p 00019000 fd:02 6291516 /home/huangc/linux.x64/lib/libfsc_esbmsg.so
7f2797e95000-7f2797e97000 rw-p 00018000 fd:02 6291516 /home/huangc/linux.x64/lib/libfsc_esbmsg.so
7f2797e97000-7f2797eb3000 r-xp 00000000 fd:02 6291522 /home/huangc/linux.x64/lib/libfsc_f2log.so
7f2797eb3000-7f2797fb3000 ---p 0001c000 fd:02 6291522 /home/huangc/linux.x64/lib/libfsc_f2log.so
7f2797fb3000-7f2797fb4000 rw-p 0001c000 fd:02 6291522 /home/huangc/linux.x64/lib/libfsc_f2log.so
7f2797fb4000-7f2797fcf000 r-xp 00000000 fd:00 1704802 /usr/lib64/gconv/GBK.so
7f2797fcf000-7f27981ce000 ---p 0001b000 fd:00 1704802 /usr/lib64/gconv/GBK.so
7f27981ce000-7f27981cf000 r--p 0001a000 fd:00 1704802 /usr/lib64/gconv/GBK.so
7f27981cf000-7f27981d0000 rw-p 0001b000 fd:00 1704802 /usr/lib64/gconv/GBK.so
7f27981d0000-7f279e061000 r--p 00000000 fd:00 1704750 /usr/lib/locale/locale-archive
7f279e061000-7f279e08d000 r-xp 00000000 fd:00 1704799 /usr/lib64/gconv/GB18030.so
7f279e08d000-7f279e28c000 ---p 0002c000 fd:00 1704799 /usr/lib64/gconv/GB18030.so
7f279e28c000-7f279e28d000 r--p 0002b000 fd:00 1704799 /usr/lib64/gconv/GB18030.so
7f279e28d000-7f279e28e000 rw-p 0002c000 fd:00 1704799 /usr/lib64/gconv/GB18030.so
7f279e28e000-7f279e294000 rw-p 00000000 00:00 0
7f279e294000-7f279e2a0000 r-xp 00000000 fd:02 6291517 /home/huangc/linux.x64/lib/libfsc_f2config.so
7f279e2a0000-7f279e3a0000 ---p 0000c000 fd:02 6291517 /home/huangc/linux.x64/lib/libfsc_f2config.so
7f279e3a0000-7f279e3a1000 rw-p 0000c000 fd:02 6291517 /home/huangc/linux.x64/lib/libfsc_f2config.so
7f279e3a1000-7f279e3b7000 r-xp 00000000 fd:02 6291518 /home/huangc/linux.x64/lib/libfsc_f2core.so
7f279e3b7000-7f279e4b7000 ---p 00016000 fd:02 6291518 /home/huangc/linux.x64/lib/libfsc_f2core.so
7f279e4b7000-7f279e4b8000 rw-p 00016000 fd:02 6291518 /home/huangc/linux.x64/lib/libfsc_f2core.so
7f279e4b8000-7f279e4b9000 rw-p 00000000 00:00 0
7f279e4b9000-7f279e4c9000 r-xp 00000000 fd:02 6291545 /home/huangc/linux.x64/lib/libf_os.so
7f279e4c9000-7f279e5c9000 ---p 00010000 fd:02 6291545 /home/huangc/linux.x64/lib/libf_os.so
7f279e5c9000-7f279e5ca000 rw-p 00010000 fd:02 6291545 /home/huangc/linux.x64/lib/libf_os.so
7f279e5ca000-7f279e5ce000 rw-p 00000000 00:00 0
7f279e5ce000-7f279e5fc000 rw-p 00000000 00:00 0
7f279e5fc000-7f279e603000 r--s 00000000 fd:00 1705008 /usr/lib64/gconv/gconv-modules.cache
7f279e603000-7f279e604000 rw-p 00000000 00:00 0
7ffffa45c000-7ffffa49c000 rw-p 00000000 00:00 0 [stack]
7ffffa564000-7ffffa565000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
[huangc@V-02-01-00860 ~]$

三、vmstat

前面“ CPU利用率” 一节中介绍过 vmstat, vmstat的主要目的是监视内存可用性和交换活动,还可以提供 I/O活动的概况。 vmstat可协助发现异常的系统活动, 例如会导致操作系统性能下降的过多的页面错误或上下文切换操作。vmstat的输出样本如下所示 :

[huangc@V-02-01-00860 ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 2648032 702872 67048 5155016 1 6 5 34 0 1 27 27 46 0 0

vmstat可以报告以下与内存相关的数据 :

  • memory部分的单位为 KB,显示被换出内存容量(swpd)、空闲内存容量(free)、 I/O数据结构的缓冲区缓存容量(buff),以及从磁盘读取文件时所用的内存缓存容量(cache)。
  • swap部分显示从磁盘上换入的内存量(si)以及换出到磁盘上的内存量(so),单位为KB/s。io部分显示从设备上读入的块数(bi)以及写出到设备上的块数(bo),单位为 KB/s。

对于 I/O操作密集的工作负荷,可以监视 bi和 bo来获取传输速率,监视 in来获取中断速率。可以通过监视 swpd、 si和 so来查看操作系统是否正在执行交换活动,还可以再检查交换速率。最常见的量度也许是 CPU利用率以及对 us、 sy、 id和 wa的监视。如果wa取值很大, 则需要检查 I/O子系统, 结论有可能是需要更多的 I/O控制器和磁盘以便减少I/O等待时间 。

linux系统性能监控--内存利用率的更多相关文章

  1. linux系统性能监控--CPU利用率

    在对系统的方法化分析中,首要且最基本的工具之一常常是对系统的 CPU利用率进行简单测量. Linux以及大多数基于 UNIX的操作系统都提供了一条命令来显示系统的平均负荷(loadaverage) . ...

  2. linux系统性能监控--网络利用率

    Linux中提供了许多有助于评估各种 Linux网络性能的监视工具,其中一些监视工具也可用于解决网络问题以及监视性能. Linux内核为用户提供了大量的网络系统信息,这有助于监视网络的健康状态并检测在 ...

  3. Linux 系统性能监控命令详解

    Linux 系统性能监控命令详解 CPU MEMORY IO NETWORK LINUX进程内存占用查看方法 系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(pag ...

  4. [C++]Linux之计算内存利用率与辨析

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步,乃至成为朋友- 0.0 /* @url:http ...

  5. Linux系统性能监控

    系统的性能指标主要包括CPU.内存.磁盘I/O.网络几个方面. 1. CPU性能 (1)利用vmstat命令监控系统CPU 该命令可以显示关于系统各种资源之间相关性能的简要信息,这里我们主要用它来看C ...

  6. linux系统性能监控--I/O利用率

    尽管整体的处理器速度. 内存大小以及 I/O执行速度在不断提高,但 I/O操作的吞吐率和延迟性能仍然要比等价的内存访问操作低多个数量级.另外,由于许多工作负荷都拥有重要的I/O组件,I/O处理很容易成 ...

  7. linux系统性能监控常用命令

      一.Linux服务器性能关注点 1)CPU -> load:表示cpu在一段时间内正在处理以及等待处理的任务之和统计信息,简单可理解为cpu正处理的线程数和能同时处理的线程数的比值.一般认为 ...

  8. nagios监控linux主机监控内存脚本

    说明 工作包括两部分监控端(一二三)和被监控端(四) 一.nrpe.cfg中添加脚本 nrpe.cfg中添加命令索引 command[check_used_mem]=/usr/local/nagios ...

  9. Linux系统性能监控之6个vmstat和6个iostat命令

    这篇文章主要介绍一些Linux性能检测相关的命令. vmstat和iostat的两个命令可以运行在主流的Linux/Unix操作系统上. 如果vmstat和iostat命令不能再你的电脑上运行,请安装 ...

随机推荐

  1. ECSHOP模板 蘑菇街2018广告楼层设置说明

    楼层广告以及说明 图1 ------------------ 设置,通过,后台,模板设置,分类下的商品,选用需要显示的商品分类 图2------------------ 后台,编辑商品分类的广告链接. ...

  2. Centos下安装 .net Core运行程序

    首先要进行更新下镜像文件 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e ...

  3. TCP/IP学习笔记:TCP传输控制协议(一)

    1 TCP的服务 尽管TCP和UDP都使用相同的网络层(IP),TCP却向用户提供一种面向连接的,可靠地字节流服务.两个使用TCP的应用,在彼此交换数据之前必须先建立一个TCP连接,在一个TCP连接中 ...

  4. SpringMVC 自定义类型转换器

    先准备一个JavaBean(Employee) 一个Handler(SpringMVCTest) 一个converters(EmployeeConverter) 要实现的输入一个字符串转换成一个emp ...

  5. Java基础知识回顾之四 ----- 集合List、Map和Set

    前言 在上一篇中回顾了Java的三大特性:封装.继承和多态.本篇则来介绍下集合. 集合介绍 我们在进行Java程序开发的时候,除了最常用的基础数据类型和String对象外,也经常会用到集合相关类. 集 ...

  6. k8s踩坑记 - kubeadm join 之 token 失效

    抛砖引玉 环境 centos 7 amd64 两台 kubernetes 1.10 伴随着k8s1.10版本的发布,前天先在一台机器上搭建了k8s单机版集群,即既是master,也是node,按照经验 ...

  7. 初级Django学习

    创建Django项目django-admin startproject project_test1 新建应用:python manage.py startapp booktest admin: 权限管 ...

  8. NPM实用指北

    npm作为下载node附送的大礼包,大家一定不会陌生. 然而关于npm,估计大量的只是用到npm install XXX以及npm run XXX. 其实这里边还有很多有意思的命令&参数.关于 ...

  9. [HNOI 2010]chorus 合唱队

    Description 题库链接 对于一个包含 \(N\) 个整数的数列 \(A\) ,我们可以把它的所有元素加入一个双头队列 \(B\) . 首先 \(A_1\) 作为队列的唯一元素,然后依次加入 ...

  10. Codeforces 429E Points and Segments

    Description 题面 题目大意:有 \(n\) 个区间 \([L_i,R_i]\) ,你要给每一个区间染红蓝,使得每一个位置被红色染过的次数与被蓝色染过的次数差的绝对值不大于\(1\) Sol ...