linux查看虚拟内存和cpu占用率

转载自:https://blog.csdn.net/hhh3h/article/details/42150005

top 
free 
cat /proc/meminfo 
cat /proc/cpuinfo
======================================================================================== 
top的基本视图,我们来结合这个视图讲解各个数据的含义。
    第一行:
    10:01:23 — 当前系统时间
    126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
    2 users — 当前有2个用户登录系统
    load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
    第二行:
    Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

    第三行:cpu状态
    6.7% us — 用户空间占用CPU的百分比。
    0.4% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    92.9% id — 空闲CPU百分比
    0.0% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.0% si — 软中断(Software Interrupts)占用CPU的百分比
在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。
    第四行:内存状态
    8306544k total — 物理内存总量(8GB)
    7775876k used — 使用中的内存总量(7.7GB)
    530668k free — 空闲内存总量(530M)
    79236k buffers — 缓存的内存量 (79M)
    第五行:swap交换分区
    2031608k total — 交换区总量(2GB)
    2556k used — 使用的交换区总量(2.5M)
    2029052k free — 空闲交换区总量(2GB)
    4231276k cached — 缓冲的交换区总量(4GB)
计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
    第六行是空行
    第七行以下:各进程(任务)的状态监控
    PID — 进程id
    USER — 进程所有者
    PR — 进程优先级
    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR — 共享内存大小,单位kb
    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 上次更新到现在的CPU时间占用百分比
    %MEM — 进程使用的物理内存百分比
    TIME+ — 进程使用的CPU时间总计,单位1/100秒
    COMMAND — 进程名称(命令名/命令行)

多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:

==============================================================

一般我们查看系统性能主要是在以下几个方面
1.用户使用CPU情况 展现为 %user
2.系统使用CPU情况 展现为 %sys
3.wio或iowait     展现为 %iowait 进程由于等待磁盘IO而使CPU处于空闲状态的比率
4.CPU的空闲率
5.CPU上下文的交换的比率,也有说明为CPU上下文的切换。即内存和寄存器中数据的切换
6.nice 这个还不是很明白是啥意思
7.real-time 还是未知
8.运行队列的长度
9.平均负载

二 常用命令
1.mpstat
2.top
3.vmstat
4.sar
5.iostat
6.uptime

三命令详解
1. mpstat -P ALL 5    //需要注意的P和ALL一定要大写

17时22分24秒  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
17时22分29秒  all    0.30    0.00    0.10    0.67    0.02    0.07    0.00   98.83    821.40
17时22分29秒    0    1.00    0.00    0.60    1.00    0.20    0.60    0.00   96.60    560.00
17时22分29秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.20      0.00
17时22分29秒    2    0.60    0.00    0.20    0.20    0.00    0.20    0.00   99.00    250.20
17时22分29秒    3    0.00    0.00    0.00    4.00    0.00    0.00    0.00   96.00     11.20
17时22分29秒    4    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.20      0.00
17时22分29秒    5    0.80    0.00    0.00    0.00    0.00    0.00    0.00   99.20      0.00
17时22分29秒    6    0.00    0.00    0.00    0.00    0.00    0.00    0.00 

猜你喜欢

转载自blog.csdn.net/lizhengyu891231/article/details/81570346