一、vmstat

            vmstat是linux/unix上一个监控工具,能展示给定时间间隔的服务器的状态,包括操作系统的内存信息,CPU使用状态、进程信息等。

语法:

vmstat [-V] [delay [count]]
    #-V     打印出vmstat工具的版本信息
    #delay  设置两次输出的时间间隔
    #count  设置总共输出的次数

wKiom1fRWPqAviPmAABm6fuVbJY513.png


linux系统中常见的性能分析工具_第1张图片

对输出参数进行讲解

    procs

        r:运行进程数(即真正分配到cpu的进程数量),如果该值长期大于系统逻辑cpu的数量,表示cpu不足

        b:表示阻塞的进程数

    memory

        swpd:表示正在使用的虚拟内存的多少

        free:表示当前空闲的物理内存的大小

        buff:表示当前使用的buffers的大小

        cached:表示当前使用的cached的大小

buffers和cached的区别:
    ①buffers和cached都是内存的一部分
    ②buffers是内存与磁盘之间的,当对磁盘进行读写操作时,内存先将数据缓存到buffers中,然后再写入磁盘;cached是cpu和内存之间的,cached是缓存读取过的内容,下次再读时,如果在缓存中命中,则直接从缓存读取,否则读取磁盘。

      swap

        si:表示从磁盘读入到虚拟内存的大小

        so:表示从虚拟内存写入到磁盘的大小

如果si和so长期不为0,表示系统内存不足;而如果swpd的值长期不为0,但si和so的值长期为0,则无需担心

      io

        bi:表示从磁盘读取数据的总量

        bo:表示写入磁盘的数据总量

      system

        in:表示系统中断数

        cs:表示每秒产生的上下文切换次数

in和cs的值越大,内核消耗cpu时间越大

      cpu

         us:用户进程消耗的cpu时间所占百分比

         sy:内核进程消耗的cpu时间所占百分比

          id:cpu空闲状态的时间百分比

          wa:表示IO等待所占用的cpu时间百分比

us+sy+id=100

----------------------------------------------------------------------------------------------------------------------------------------

二、sar命令

 sar命令可以获取系统的cpu、磁盘、内存、网络运行状态等信息

常见用法有

linux系统中常见的性能分析工具_第2张图片


wKioL1fRZEuyIWGfAACLl-p991s993.png


linux系统中常见的性能分析工具_第3张图片


wKiom1fRY0qgYCeTAACuzI4zLzU206.png

linux系统中常见的性能分析工具_第4张图片

注意要点:

    -u表示查看系统cpu整体的使用状态,-P可以分开查询每个cpu的使用情况,其中对cpu的计数是从0开始的


--------------------------------------------------------------------------------------------------------------------------------

三、iostat

可以对系统磁盘的IO操作进行监控,同时也可以输出显示cpu的使用情况

语法:

iostat options [interval [count]]
options 说明
-c 显示cpu的使用情况
-d 显示磁盘的使用情况
-k 表示以KB为单位显示数据
-x device 指定要统计的磁盘设备

wKiom1fRZnjxmJjWAABLdaiZp8Y728.pngKB_read/s:表示每秒读取的数据块数量

KB_wrtn/s:表示每秒写入的数据块数量

KB_read:表示总共读的数据块数量
KB_wrtn:表示总共写的数据块数量

-----------------------------------------------------------------------------------------------------------------------

四、netstat

    可以显示网络连接、端口状态和路由表等信息

语法:netstat [options]

常见option 说明
-a 显示所有的连接和监听的端口
-r 显示路由信息
-t 显示tcp连接
-u 显示udp连接
-l 显示连接状态为LISTEN的连接
-p

显示连接对应的PID

-n 以IP和端口的形式显示连接

比较常见用法:

netstat -plnt
netstat -puln
netstat -r

------------------------------------------------------------------------------------------------------------------------------------

五、free

    监控linux内存的使用情况

wKioL1fRaCrARYk9AAAqKn_RmEE318.png

---------------------------------------------------------------------------------------------------------------------------

六、uptime

    可以查看系统的启动时长和cpu的负载情况

wKioL1fRaNPQMsEBAAAb76HZRy4243.png

系统现在时间    启动时长   登录用户数量      1分钟内的平均负载  5分钟内的平均负载   15分钟内的平均负载

注意:load average的三个输出值如果大于系统逻辑cpu数量时,表示cpu繁忙,会影响系统性能

 -------------------------------------------------------------------------------------------------------------------------