• linux服务器性能状态查看


    vmstat结果内容的解释

    Vmstat

    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    2 0 88 199564 134860 1175252 0 0 0 352 9323 10496 8 6 85 0 0


    procs
    r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
    b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

    memory
    swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
    free 当前的空闲页面列表中内存数量(k表示)
    buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
    cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

    swap
    si 由内存进入内存交换区数量。
    so由内存交换区进入内存数量。

    IO
    bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
    bo 块设备写入数据的总量(写磁盘)(每秒kb)
    这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

    system 显示采集间隔内发生的中断数
    in 列表示在某一时间间隔中观测到的每秒设备中断数。
    cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。

    cpu 表示cpu的使用状态
    us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
    sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
    wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
    id 列显示了cpu处在空闲状态的时间百分比

     vmstat命令输出分成六个部分:
      (1)进程procs:
      r:在运行队列中等待的进程数 。
      b:在等待io的进程数 。
      (2)内存memoy:
      swpd:现时可用的交换内存(单位KB)。
      free:空闲的内存(单位KB)。
      buff: 缓冲去中的内存数(单位:KB)。
      cache:被用来做为高速缓存的内存数(单位:KB)。
      (3) swap交换页面
      si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
      so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
      (4) io块设备:
      bi: 发送到块设备的块数,单位:块/秒。
      bo: 从块设备接收到的块数,单位:块/秒。
      (5)system系统:
      in: 每秒的中断数,包括时钟中断。
      cs: 每秒的环境(上下文)切换次数。
      (6)cpu中央处理器:
      cs:用户进程使用的时间 。以百分比表示。
      sy:系统进程使用的时间。 以百分比表示。
      id:中央处理器的空闲时间 。以百分比表示。

      如果 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。

    如果bi,bo 长期不等于0,表示物理内存容量太小。

    检查系统的性能情况。

    1)CPU使用情况分析

    以下指标来衡量CPU的负载情况.

    总体利用率:

    [root@linux stone]sar -u 5 5
    Linux 2.4.21-4.ELsmp (linux1)

    01/04/05

    18:00:17 CPU %user %nice %system %idle
    18:00:22 all 1.50 0.00 0.93 97.57
    18:00:27 all 16.02 0.00 4.74 79.24
    18:00:32 all 5.69 0.00 3.77 90.53
    18:00:37 all 0.79 0.00 1.10 98.11
    18:00:42 all 2.69 0.00 1.21 96.10
    Average: all 5.15 0.00 2.24 92.61

    获得指定CPU号(多CPU情况下)的使用情况
    [root@linux stone]sar -U 0
    Linux 2.4.21-4.ELsmp (linux1) 01/04/05
    00:00:00 CPU %user %nice %system %idle
    00:10:00 0 1.10 0.00 0.83 98.36
    00:20:00 0 0.55 0.00 0.78 97.52
    00:30:00 0 0.97 0.00 0.77 98.57
    00:40:00 0 1.15 0.00 0.93 97.09
    00:50:00 0 1.88 0.00 1.33 95.96
    01:00:00 0 1.20 0.00 1.11 96.66
    01:10:00 0 0.78 0.00 1.26 97.96
    01:20:00 0 1.07 0.00 1.04 96.91
    01:30:00 0 1.24 0.00 1.01 97.29

    可以获得运行用户进程%user,内核进程%system 和空闲状态是CPU时间的百分比.
    观察数据,获得结论:
    %user越大一般表明服务器处于运行状态;%system越大表明服务器处于系统调用
    或者I/O操作。如果CPU有大量时间处于空闲状态(%idle),那就说明CPU足够。

    我们还可以获得每个时间段上内核切换当前进程的次数,如果这个数很高,表示服务器
    硬件有问题。
    [root@linux stone]sar -w
    07:50:00 cswch/s
    08:00:00 285.49
    08:10:00 259.64
    08:20:00 387.54
    08:30:00 359.15
    08:40:00 504.29
    08:50:00 762.73
    09:00:00 572.93
    09:10:01 885.75
    09:20:00 1159.97
    09:30:00 1101.83
    09:40:00 1095.72
    09:50:00 1052.89
    10:00:00 961.75
    10:10:00 861.31
    10:20:00 501.76
    10:30:00 370.81
    10:40:00 736.26
    10:50:00 635.93
    11:00:00 399.51
    11:10:00 873.58
    11:20:00 741.14
    11:30:00 776.49
    11:40:00 641.55
    Average: 416.97

    平均负载:
    系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数,一般来说只要每个CPU的当
    前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这
    台机器的性能有严重问题.

    [root@linux stone]uptime
    18:07:22 up 10days, 8:05, 1user, load average: 0.49, 0.31,1.18
    表示在过去的1、5、15分钟内运行队列中的平均进程数量.

    [root@linux stone]sar -q
    07:50:00 runq-sz plist-sz ldavg-1 ldavg-5
    08:00:00 0 214 0.01 0.08
    08:10:00 0 222 0.37 0.21
    08:20:00 1 229 0.41 0.42
    08:30:00 0 239 0.45 1.10
    08:40:00 0 242 0.24 0.36
    08:50:00 1 253 1.55 1.98
    09:00:00 0 248 0.45 0.55
    09:10:01 0 273 8.17 3.85
    09:20:00 0 295 0.62 0.99
    09:30:00 0 279 0.87 0.79
    09:40:00 1 284 0.62 0.68
    09:50:00 0 302 0.38 0.51
    10:00:00 0 277 0.98 0.79
    10:10:00 2 289 0.60 0.55
    10:20:00 2 264 0.28 0.33
    10:30:00 0 269 0.28 0.31
    10:40:00 0 284 0.58 0.46
    10:50:00 0 324 1.18 0.62
    11:00:00 0 311 0.43 0.31
    11:10:00 0 330 0.65 0.54
    11:20:00 1 335 0.45 0.45
    11:30:00 1 345 0.39 0.47
    11:40:00 0 322 0.22 0.36
    Average: 0 296 0.65 0.60
    runq-sz:等待运行的进程数
    plist-sz:总的进程数(在process list).
    ldavg-1 : 系统最后一分钟的平均负载
    ldavg-5: 系统最后5分钟的平均负载

    每个进程的CPU消耗量:通过了解具体的某个进程对CPU消耗的统计,我们可以确定某一进程是否存在问题,
    并进行改善(改善该进程?改善硬件?....)
    可以用ps -aux或者top来观察某一进程对CPU的消耗情况。
    另外,vmstat工具也可以报告一些cpu的情况.
    [root@linux stone]vmstat
    procs memory swap io system cpu
    r b swpd free buff cache si so bi bo in cs us sy idwa
    0092456141164 102032 23465240 075 951168

    lenovosnb (2006-8-2318:23:39)

    2) 内存情况
    你必须对系统内存管理过程进行了解,特别是页的交换等原理。一般用活动虚拟内存的总量和换页率来衡量
    内存的使用情况。从活动虚拟内存总量我们可以获得内存的需求量;根据换页率我们可以获得内存有多少处于
    使用中。换页率越高,说明内存使用很大(磁盘会咯咯响),这时候应该增加内存。

    活动虚拟内存的总量(VM)=实际内存大小(size ofreal memory)+使用的交换空间大小(amount of swap space used)
    [root@linux stone]sar -r
    07:50:00 kbmemfreekbmemused %memused kbmemshrdkbbuffers kbcached kbswpfreekbswpused %swpused
    08:00:00 74532 3536724 97.94 0 90808 2237872 8294676 91172 1.09
    08:10:00 93652 3517604 97.41 0 88864 2218328 8294696 91152 1.09
    08:20:00 63192 3548064 98.25 0 69988 2269068 8294700 91148 1.09
    08:30:00 272344 3338912 92.46 0 22552 2119284 8290536 95312 1.14
    08:40:00 126104 3485152 96.51 0 38888 2242808 8290560 95288 1.14
    08:50:00 191476 3419780 94.70 0 18528 2246968 8289944 95904 1.14
    09:00:00 55304 3555952 98.47 0 32836 2368824 8285288 100560 1.20
    09:10:01 201592 3409664 94.42 0 50876 2251528 8285708 100140 1.19
    09:20:00 32912 3578344 99.09 0 66316 2410260 8285984 99864 1.19
    09:30:00 55232 3556024 98.47 0 45944 2400496 8286072 99776 1.19
    09:40:00 51652 3559604 98.57 0 64392 2383592 8286216 99632 1.19
    09:50:00 45172 3566084 98.75 0 70144 2388804 8286428 99420 1.19
    10:00:00 52068 3559188 98.56 0 64676 2395512 8286564 99284 1.18
    10:10:00 51400 3559856 98.58 0 49620 2407528 8286596 99252 1.18
    10:20:00 41692 3569564 98.85 0 47684 2424280 8286652 99196 1.18
    10:30:00 35200 3576056 99.03 0 50336 2431268 8286656 99192 1.18
    10:40:00 21400 3589856 99.41 0 64612 2423780 8286728 99120 1.18
    10:50:00 83048 3528208 97.70 0 68084 2331448 8286796 99052 1.18
    11:00:00 22072 3589184 99.39 0 70764 2416216 8286816 99032 1.18
    11:10:00 34376 3576880 99.05 0 56780 2405008 8286824 99024 1.18
    11:20:00 36376 3574880 98.99 0 48756 2397968 8286836 99012 1.18
    11:30:00 43808 3567448 98.79 0 49708 2398852 8286924 98924 1.18
    11:40:00 34884 3576372 99.03 0 60960 2408756 8286936 98912 1.18
    11:50:00 38328 3572928 98.94 0 67080 2407960 8286936 98912 1.18
    12:00:00 38932 3572324 98.92 0 72724 2406132 8286940 98908 1.18
    12:10:00 109300 3501956 96.97 0 75348 2326492 8286940 98908 1.18
    Average: 64548 3546708 98.21 0 96633 2330707 8291911 93937 1.12


    [root@linux stone]swapon -s
    Filename Type Size Used Priority
    /dev/sdb8 partition 419292498908 -1
    /dev/sdb10 partition 4192924 0 -2
    通过以上数据,我们可以获得
    活动虚拟内存的总量(VM)=kbmem +kbswpused=3.54G
    3.47G就是当前服务器需要的内存总量.

    [root@linux stone]sar -B
    07:50:00 pgpgin/spgpgout/s activepg inadtypg inaclnpg inatarpg
    08:00:00 9.34 139.23 566687 0 13589 142713
    08:10:00 25.71 108.40 564261 0 13539 141743
    08:20:00 149.36 191.93 573187 0 13399 143335
    08:30:00 43.63 234.46 529094 35493 11998 134494
    08:40:00 246.68 277.54 565985 25012 9177 141597
    08:50:00 381.88 536.92 553537 52107 12381 140623
    09:00:00 190.29 307.08 581102 31530 12311 147195
    09:10:01 259.69 860.26 560927 60833 13643 142327
    09:20:00 487.91 550.73 604302 55059 14379 151157
    09:30:00 382.74 710.78 598312 70977 14059 149736
    09:40:00 354.97 510.46 598398 70661 13795 149920
    09:50:00 280.48 629.94 602880 64397 13864 150517
    10:00:00 447.48 659.52 602483 69873 13362 150261
    10:10:00 404.97 458.69 603719 68104 13724 150115
    10:20:00 310.69 272.95 601711 67460 13898 150651
    10:30:00 121.59 184.03 603972 56077 13928 151109
    10:40:00 263.55 392.60 605818 60314 17208 151754
    10:50:00 210.45 348.91 589640 72762 13761 148093
    11:00:00 190.55 199.58 607545 54517 15086 151774
    11:10:00 350.40 462.20 603874 75205 14074 150970
    11:20:00 374.10 437.94 603769 70937 13904 150877
    11:30:00 163.58 381.97 601763 62157 14369 150481
    11:40:00 96.75 298.26 605429 45214 14093 151042
    11:50:00 127.14 159.75 602817 38423 13911 150789
    12:00:00 57.85 186.46 602126 27663 14362 150737
    12:10:00 51.41 216.03 585281 32559 13808 146942
    12:20:00 95.07 225.01 600874 6573 13793 150148
    12:30:00 197.36 162.14 605716 5821 16786 151620
    12:40:00 16.31 145.40 604436 0 14285 151002
    Average: 100.76 226.88 591604 16947 13867 148584

    pgpgin/s: 换入页的KB数
    pgpgout/s: 换出页的KB数
    activepg: 内存中活动的页数
    inadtypg: Number of inactive dirty (modified or potentiallymodified) pages in memory.
    inaclnpg: Number of inactive clean (not modified) pages inmemory.
    inatarpg:"Inactive target" number of pages.Thisfield is a 1-minute floating average of the number of
    pages thesystem needs to "steal" every second in order to satisfy memorydemand.

    如果系统总是存在大量的换出页的KB数,说明系统需要内存.当然,inatarpg参数也能说明问题。

    3)磁盘I/O

    我们可以用iostat来获得系统磁盘的数据.
    [stone@localhost stone]$iostat
    Linux 2.4.20-19.7 (localhost.localdomain) 01/06/2005

    avg-cpu: %user %nice %sys %idle
    0.09 0.00 0.21 99.70

    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
    dev3-1 0.77 4.65 17.03 11788068 43140248

    tps:Indicate the number oftransfers per second that were issued to the device
    Blk_read/s:Indicate the amount of dataread from the drive expressed in a number of blocks persecond
    Blk_wrtn/s:Indicate the amount of data written to the driveexpressed in a number ofblocks per second.
    Blk_read:The total number of blocks read.
    Blk_wrtn:The total number of blocks written.

    [stone@localhost stone]$ iostat -x
    Linux 2.4.20-19.7 (localhost.localdomain) 01/06/2005

    avg-cpu: %user %nice %sys %idle
    0.09 0.00 0.21 99.70

    Device: rrqm/swrqm/s r/s w/s rsec/s wsec/savgrq-sz avgqu-sz await svctm %util
    hdb 0.46 1.48 0.12 0.65 4.65 17.04 28.13 0.10 118.90207.70 1.60
    hdb1 0.00 0.00 0.00 0.00 0.00 0.00 9.52 0.00 128.76 88.84 0.00
    hdb2 0.46 1.48 0.12 0.65 4.65 17.01 28.17 0.09 117.58 13.39 0.10
    hdb3 0.00 0.00 0.00 0.00 0.00 0.03 15.25 0.00 619.92519.40 0.01


    [stone@localhost stone]$ procinfo
    Linux 2.4.20-19.7 (bhcompile@porky.devel.redhat.com) (gcc 2.9620000731 ) #1 Tue Jul 15 13:45:48 EDT 2003 1CPU [localhost]

    Memory: Total Used Free Shared Buffers Cached
    Mem: 255896 247240 8656 0 78772 87056
    Swap: 522104 26036 496068

    Bootup: Wed Dec 8 10:28:532004 Load average: 0.00 0.000.00 1/72 2571

    user : 0:37:18.15 0.1% page in: 5894299 disk1: 306840r 1648467w
    nice : 0:00:20.57 0.0% page out:21578634
    system: 1:27:38.76 0.2% swap in: 985
    idle : 29d 5:39:38.40 99.7% swapout: 8822
    uptime: 29d 7:44:55.87 context:320846503

    irq 0: 253349588timer irq 6: 6
    irq 1: 3keyboard irq 8: 1rtc
    irq 2: 0 cascade[4] irq12: 5277552 usb-uhci,eth0
    irq 3: 3 irq14: 1953315ide0
    irq 4: 3

    4)网络负载
    可以先查看网络接口数据状态
    ifconfig如果发现collisions:0数据很大(占发送数据或者接受数据的5%以上),那么说明网络
    严重堵塞。

    netstat -i
    Kernel Interface table
    Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0 1500 0 4701184 0 0 0 912247 0 0 0 BMRU
    lo 16436 0 1285408 0 0 01285408 0 0 0 LRU
  • 相关阅读:
    httpd服务器的真实ip获取难题
    nginx配置文件详解
    nginx基础知识总结
    Web服务并发I/O模型
    chrony时间服务器
    Linux运维之每日小技巧-检测网站状态以及PV、UV等介绍
    Centos7系统下编写systemd脚本设置redis开机自启动
    Kibana中的Coordinate Map地图报索引错误的问题
    apache的php模块讲解以及搭建phpmyadmin管理数据库mysql
    AMP架构补充与wordpress部署
  • 原文地址:https://www.cnblogs.com/alex-13/p/4059866.html
Copyright © 2020-2023  润新知