zoukankan      html  css  js  c++  java
  • linux内存负载分析

    衡量内存负载的一个很重要的指标就是页面置换的频率。当linux系统频繁的对页进行换进换出
    的时候,说明物理内存不过,不得不进行频繁的置换页面。
    使用vmstat(virtual memory statistics)进行内存负载分析
    [oracle@zeng ~]$ vmstat 2 3
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0      0 758668  19688  64508   56    0     0   256  263  118  3 22 74  2  0
     0  0      0 758668  19688  64532    0    0     0     0   21   10  0  1 99  0  0
     0  0      0 758668  19688  64532    0    0     0     0   19    7  0  1 100  0  0
    对于内存负载分析其中关键的字段是:
    swpd:虚拟内存的使用总量。
    si:每秒从虚拟内存读入内存的大小。
    so:每秒从内存写入虚拟内存的大小。
    如果这3个字段的值比较高说明出现了内存瓶颈。
    也可以使用free 来标识内存的负载情况.
    [oracle@zeng ~]$ free
                 total       used       free     shared    buffers     cached
    Mem:        911564     155492     756072          0      20564      65696
    -/+ buffers/cache:      69232     842332
    Swap:      3481592          0    3481592
    如果发现linux 系统使用了其中大部分的物理内存。这是正常的linux使用这些物理内存来
    提升系统的性能。其中要注意的是swap 那一行.
    [oracle@zeng ~]$ free -s 3 
                 total       used       free     shared    buffers     cached
    Mem:        911564     155748     755816          0      20620      65732
    -/+ buffers/cache:      69396     842168
    Swap:      3481592          0    3481592
     
                 total       used       free     shared    buffers     cached
    Mem:        911564     155748     755816          0      20620      65732
    -/+ buffers/cache:      69396     842168
    Swap:      3481592          0    3481592
    -s 选项表示间隔多少秒,报告一次内存负载情况。使用Ctrl+C退出。可以把上面
    的输出重定向到文件。
    也可以通过查看虚拟文件 /proc/meminfo 来查看内存的负载情况。
    [oracle@zeng ~]$ cat /proc/meminfo  
    MemTotal:         911564 kB
    MemFree:          239024 kB
    Buffers:           23304 kB
    Cached:           513724 kB
    SwapCached:            0 kB
    Active:           216272 kB
    Inactive:         387160 kB
    如果你在输出中看到SwapFree 字段的值较低,说明你的系统内存负载很高,需要添加
    额外的内存,或者监控系统进程对内存的使用情况,把一些不需要的进程结束掉。缓解
    内存负载。vmstat,free,cat /proc/meminfo 都可以和watch 一起配合使用。
    使用sar 进行实时,当天,当天前本月的其他天的内存负载情况分析。
    使用sar 进行历史内存发展分析.
    [oracle@zeng ~]$ sar -B -f /var/log/sa/sa08
    Linux 2.6.32-71.el6.i686 (zeng)         03/08/2012      _i686_  (1 CPU)
     
    09:50:01 AM       LINUX RESTART
     
    10:00:02 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
    10:10:01 AM      0.00     79.83      0.00    124.61      0.00      0.00      0.00      0.00      0.00
    10:20:01 AM      0.00      1.42      0.00     51.98      0.00      0.00      0.00      0.00      0.00
    10:30:01 AM      0.00    113.79      0.00    135.36      0.00      0.00      0.00      0.00      0.00
    10:40:02 AM      0.00      0.02      0.00     32.64      0.00      0.00      0.00      0.00      0.00
    10:50:01 AM      0.00      0.02      0.00     33.78      0.00      0.00      0.00      0.00  
    -B 表示报告系统的分析统计情况。
    pgpgin/s :每秒从磁盘中调入的大小,bytes。
    pgpgout/s :每秒从内存中换出的大小,bytes。
    -f 表示要从哪个历史日志文件中读取相应的报告数据。/var/log/sa/saNN NN表示本月的天数。
    [oracle@zeng ~]$ sar -W -f /var/log/sa/sa13
    Linux 2.6.32-71.el6.i686 (zeng)         03/13/2012      _i686_  (1 CPU)
     
    12:57:10 PM       LINUX RESTART
     
    01:00:02 PM  pswpin/s pswpout/s
    01:10:02 PM     20.41      0.00
    01:20:01 PM     58.31      0.00
    01:30:02 PM     19.76      0.00
    01:40:01 PM     20.00      0.00
    01:50:01 PM     19.75      0.00
    02:00:01 PM     19.98      0.00
    02:10:01 PM     33.62      0.00
    02:20:01 PM     20.94      0.00
    02:30:01 PM     20.84      0.00
    02:40:01 PM     20.40      0.00
    -W 表示报告交换的统计情况。
    pswpin/s:每秒置换进来的大小。
    pswpout/s:每秒置换出的大小。
    如果这两个值较高,说明内存负载大。
    使用sar 进行实时内存负载分析.
    [oracle@zeng ~]$ sar -W 3 5
    Linux 2.6.32-71.el6.i686 (zeng)         03/14/2012      _i686_  (1 CPU)
     
    10:54:01 AM  pswpin/s pswpout/s
    10:54:04 AM     22.61      0.00
    10:54:07 AM     17.02      0.00
    10:54:10 AM     22.38      0.00
    10:54:13 AM     16.84      0.00
    10:54:16 AM     22.30      0.00
    Average:        20.24      0.00
    3 表示报告的时间间隔s。
    5 表示报告的次数。
    使用sar 进行当前内存负载分析。
    [oracle@zeng ~]$ sar -W
    Linux 2.6.32-71.el6.i686 (zeng)         03/14/2012      _i686_  (1 CPU)
     
    09:48:13 AM       LINUX RESTART
    09:50:02 AM  pswpin/s pswpout/s
    10:00:01 AM      1.00      0.00
    10:10:01 AM      0.61      0.00
    10:20:01 AM     19.49      0.00
    10:30:02 AM     29.70      0.00
    10:40:01 AM     38.41      0.00
    10:50:02 AM     20.49      0.00
    Average:        18.07      0.00
    [oracle@zeng ~]$ sar -r
    Linux 2.6.32-71.el6.i686 (zeng)         03/14/2012      _i686_  (1 CPU)
     
    09:48:13 AM       LINUX RESTART
     
    09:50:02 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
    10:00:01 AM    755660    155904     17.10     20240     65580    176952      4.03
    10:10:01 AM    755684    155880     17.10     20628     65732    176056      4.01
    10:20:01 AM    209720    701844     76.99     23648    537324    693520     15.79
    10:30:02 AM    177240    734324     80.56     24452    568336    693476     15.79
    10:40:01 AM     60144    851420     93.40     86464    576484    694376     15.81
    10:50:02 AM     59284    852280     93.50     87264    576512    694376     15.81
    Average:       336289    575275     63.11     43783    398328    521459     11.87
    -r 表示报告内存使用率统计。
    字段解释:
    kbmemfree  空闲内存大小。
    kbmemused  已被使用的内存大小。
    %memused   被使用的内存占总内存的百分比。
    kbbuffers  被用作buffer 的内存大小。
    kbcached   被用作cache 的内存大小。
    kbcommit   确保当前的工作负载,所需要的内存大小。以保证不需要使用到swap。
    %commit    kbcommit 与 RAM+swap 的比值。
  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/ruiy/p/MemUpload.html
Copyright © 2011-2022 走看看