zoukankan      html  css  js  c++  java
  • linux系统性能监控常用命令

     


     

    一、Linux服务器性能关注点

    1)CPU

    -> load:表示cpu在一段时间内正在处理以及等待处理的任务之和统计信息,简单可理解为cpu正处理的线程数和能同时处理的线程数的比值。一般认为load值的安全上限为cpu的个数

    -> run queue:表示cpu维护的线程运行队列。在多核系统中,每个cpu都将维护这么一个队列,其长度值越大表明cpu负载越高,load指标便基于此统计而来

    -> utilization:cpu使用率,由如下部分组成。后面一般是cpu被充分利用的比值分布

                         user          60%~70%

                         system     30%~35%

                         idle            0%~5%

                         io wait       接近0%

    ->context switches:当可运行的线程数大于cpu资源时,系统为会强行换出正在执行的线程以保证其他线程得到运行的机会。对于被换出的线程,系统会保留其运行时上下文,以便在下次调度时恢复执行。

    ->nice:在用户空间内,通过nice或setpriority调用改变过优先级进程的cpu占用率。在同等情况下,优先级高(值越小)的进程会比优先级低的得到优先调度。nice不为0,表明发生了低优先级进程抢占高优先级进程的情况

    2)Memory

    ->buffer:针对IO读写设计而言的缓冲区,主要目的是保证不同外设之间的进程数据同步

    ->cache:把已读取的数据缓存起来,当下次需要同样的数据直接从缓存中获取(命中),以提高访问速度

    ->swap:对物理内存的扩展

    3)IO

    ->R/W:读/写流量

    ->rtps/wtps:每秒请求IO读/写的事务数

    4)Network

    ->in/out网络流量大小

    ->tcp/udp/sock/httpd的连接数

    二、linux常用命令

    1) 查看服务器基本配置

    cat /proc/cpuinfo  察看cpu信息


    grep processor /proc/cpuinfo | wc -l    统计cpu个数

    cat /proc/meminfo   察看memory信息


    uname -a   系统基本信息



     
     w 或者 who 察看用户登录


    sar   系统报告命令

    常用参数  -q : cpu load

                  -u : cpu utilization

                  -r : memory

                  -b : io

                  -n : network

    sar -q 1 5    察看cpu的load状况,每1s钟统计1次,共统计5次


    从上图中可以看出,load较低,5个cpu有3个runqsz为0,说明系统负载不高

    sar -u 2 3   察看cpu使用率,每2s统计1次,共统计3次



    cpu的idle占比达到了90%+,也说明系统很闲

    sar -r   察看当日内存占用情况(默认每10分钟统计一次)


     
     8G物理内存中,使用率达到90%以上,其中buffer有100m+,cache3G+(大量本地缓存造成),swap空间共有2G,基本没用

    sar -b 察看当日IO使用情况

     

    系统不断刷新日志文件,IO反映出以write为主

    sar -n SOCK   察看网络sock连接


     
     sar -n DEV 察看网络流量


    sar -u -f /var/log/sa/sa21   对历史数据察看,对比分析系统问题(sa21表明是本月21号的数据)

    vmstat 实时性能监控



    top  显示服务器任务


    常用参数 H :切换到显示所有线程

                 1 :显示各个cpu运行情况(类似的命令还有mpstat )

    ps -ef ps -aux    都是显示所有进程,区别在于不同的显示风格


    ps -eLf | grep java | wc -l  统计java线程数


    将java换成httpd可统计apache线程数

    find、df、 du、iostat   磁盘IO命令

    find /home/admin/ -name "hsf.log"   在/home/admin/路径下查找名为hsf.log的文件


    df -ha 察看文件系统的磁盘占用情况


    du -ak | sort -t$' ' -l1 -nr -k2 -r 对当前目前下所有文件按文件大小倒排序,大小相同按文件名字母倒排序



     iostat -x -d
      磁盘IO流量实时统计


    ipconfig、ping、netstat 网络监控命令

    netstat -ano | grep 8787   察看8787端口的连接情况



     在windows下可以借助ip,通过nbtstat命令反查连接机器信息,这在排查团队成员谁远程debug服务器占用连接资源很有帮助


    另外,对于不太熟悉的命令可以使用man 查看,进一步对于某命令的参数不理解,可以对该命令使用-h 来查看如何使用

  • 相关阅读:
    如何将程序添加到系统服务实现开机自启动
    ASP.NET速度优化
    layer官方演示与讲解(jQuery弹出层插件)
    SQLSERVER排查CPU占用高的情况
    解决FlexPaper分页分段加载问题(转)
    SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600
    Virtualbox中win7虚拟机中U盘不可用问题的解决
    解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
    google chrome插件开发,自己动手,丰衣足食
    WebKit.net最简单使用方法
  • 原文地址:https://www.cnblogs.com/lcword/p/5854265.html
Copyright © 2011-2022 走看看