Linux下和Windows下的性能监控

Linux --

uptime命令

top命令:可以知道每个进程占CPU的情况

total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
Cpu(s): 
0.1% us 用户空间占用CPU百分比
0.2% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.8% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0%hi:硬件CPU中断占用百分比
0.0%si:软中断占用百分比
0.0%st:虚拟机占用百分比

vmstat命令:可以统计系统的CPU,内存,swap,io等情况

Procs
     r: The number of processes waiting for run time.
       等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。
     b: The number of processes in uninterruptible sleep. 
       处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。
Memory
     swpd: the amount of virtual memory used.
       已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,si、so的值长期为0,这也是没有问题的     
     free: the amount of idle memory.
       空闲的物理内存的大小
     buff: the amount of memory used as buffers.
       用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB
     cache: the amount of memory used as cache.
       用来做cache(缓存,主要用于缓存文件)的内存,单位:KB
     inact: the amount of inactive memory. (-a option)
       inactive memory的总量
     active: the amount of active memory. (-a option)
       active memroy的总量。
Swap
     si: Amount of memory swapped in from disk (/s).
        从磁盘交换到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了  
     so: Amount of memory swapped to disk (/s).
        从swap虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了
   内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
   当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,
   如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。 
 
   当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,
   这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,
   但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
IO
     bi: Blocks received from a block device (blocks/s).
        每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。
     bo: Blocks sent to a block device (blocks/s).
        每秒发送到块设备的块数,单位:块/秒  也就是写块设备。
System
     in: The number of interrupts per second, including the clock.
        每秒的中断数,包括时钟中断 
     cs: The number of context switches per second. 
        每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。
 
CPU
     These are percentages of total CPU time.
     us: Time spent running non-kernel code. (user time, including nice time)
        用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多
     sy: Time spent running kernel code. (system time)
        系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
     id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
        空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。
     wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.
        等待IO的CPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
    st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

pidstat命令:需要安装(sudo apt-get install sysstat), 可以细致观察进程,监控CPU,监控IO,监控内存

示例1:

PID:进程ID
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令

示例2:

 示例3:

猜你喜欢

转载自blog.csdn.net/BrianWey/article/details/83537741