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 的比值。
  • 相关阅读:
    vue框架的vue-router路由的运用
    如何用vue的computed的set和get方法
    如何学习vue的计算属性computed
    从下往上显示的弹出框动画
    vue父传子的使用
    vue局部组件如何使用
    Data 日期-项目(Thread)
    Jframe-项目
    Thread 线程
    Thread知识 (火车票到结束-项目)
  • 原文地址:https://www.cnblogs.com/ruiy/p/MemUpload.html
Copyright © 2011-2022 走看看