笔记|??Linux性能统计分析??


文章目录

  • 安装
  • uptime
  • 深入理解负载
  • 统计有多少用户
  • 平均负载
  • dmesg|tail
  • vmstat
    • 以 MB 方式输出
    • 参考
  • iostat
  • free -m
  • top

安装
yum -y install sysstat

uptime
[root@web1 xwk]# uptime 14:41:00 up 32 min,2 users,load average: 0.00, 0.04, 0.30

Unix 命令,显示系统已经运行了多长时间,它依次显示下列信息:当前时间、系统已经运行了多长时间、有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
深入理解负载 如果cpu = 1
load average = 1(cpu时刻在用)
如果cpu = 4
load average = 1(cpu只使用25%)
统计有多少用户
[root@web1 xwk]# cat /etc/group |wc -l 81 [root@web1 xwk]#

平均负载 平均负载不大于3,则系统运行表现良好
如果多核cpu,需要累加
4核cpu<12
dmesg|tail
[root@web1 xwk]# dmesg|tail

最新的10个系统信息,注意会导致性能问题的错误信息笔记|??Linux性能统计分析??
文章图片

[root@web1 xwk]# dmesg|tail -20

最新的20个系统信息
vmstat vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
[root@web1 xwk]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- rbswpdfreebuffcachesisobiboincs us sy id wa st 40482046155636 35384418564207514811 9720 [root@web1 xwk]#

procs:procs 中有 r 和 b 列,它报告进程统计信息。在上面的输出中,在运行队列(r)中有两个进程在等待 CPU 并有零个休眠进程(b)。通常,它不应该超过处理器(或核心)的数量,如果你发现异常,最好使用 top 命令进一步地排除故障。
r:等待运行的进程数。
b:休眠状态下的进程数。
memory: memory 下有报告内存统计的 swpd、free、buff 和 cache 列。你可以用 free -m 命令看到同样的信息。在上面的内存统计中,统计数据以千字节表示,这有点难以理解,最好添加 M 参数来看到以兆字节为单位的统计数据。
swpd:使用的虚拟内存量。
free:空闲内存量。
buff:用作缓冲区的内存量。
cache:用作高速缓存的内存量。
inact:非活动内存的数量。
active:活动内存量。
swap:swap 有 si 和 so 列,用于报告交换内存统计信息。你可以用 free -m 命令看到相同的信息。
si:从磁盘交换的内存量(换入,从 swap 移到实际内存的内存)。
so:交换到磁盘的内存量(换出,从实际内存移动到 swap 的内存)。
I/O:I/O 有 bi 和 bo 列,它以“块读取”和“块写入”的单位来报告每秒磁盘读取和写入的块的统计信息。如果你发现有巨大的 I/O 读写,最好使用 iotop 和 iostat 命令来查看。
bi:从块设备接收的块数。
bo:发送到块设备的块数。
system:system 有 in 和 cs 列,它报告每秒的系统操作。
in:每秒的系统中断数,包括时钟中断。
cs:系统为了处理所以任务而上下文切换的数量。
CPU:CPU 有 us、sy、id 和 wa 列,报告(所用的) CPU 资源占总 CPU 时间的百分比。如果你发现异常,最好使用 top 和 free 命令。
us:处理器在非内核程序消耗的时间。
sy:处理器在内核相关任务上消耗的时间。
id:处理器的空闲时间。
wa:处理器在等待IO操作完成以继续处理任务上的时间。
以 MB 方式输出 默认情况下,vmstat 以千字节为单位显示内存统计,这是非常难以理解的,最好添加 -S m 参数以获取以兆字节为单位的统计。
[root@web1 xwk]# vmstat -S m procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- rbswpdfreebuffcachesisobiboincs us sy id wa st 304975034800521187314411 9720 [root@web1 xwk]#

参考 vmstat:一个标准的报告虚拟内存统计工具
iostat
avg-cpu:%user%nice %system %iowait%steal%idle 0.660.100.641.280.0097.32Device:tpskB_read/skB_wrtn/skB_readkB_wrtn sda6.67425.6415.073304449116973 scd00.000.010.00660[root@web1 xwk]#

块设备(磁盘)的状况
tps: 每秒进程下发的IO读、写请求数量
kB_read/s: 每秒从驱动器读入的数据量
kB_wrtn/s: 每秒从驱动器写入的数据量
kB_read: 读入数据总量
kB_wrtn: 写入数据总量
free -m Linux free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
[root@web1 xwk]# free -m totalusedfreesharedbuff/cacheavailable Mem:976573693333190 Swap:102446978 [root@web1 xwk]#

Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。
top -n 获取多次cpu的执行情况,top -n 4只更新4次
-d 间隔时间,top -4每4秒更新一次
-p 获取指定端口的进程的数据,top -p 4444
每隔一秒检测指定进程的cpu,检测20次
top -d 1 -n 20

【笔记|??Linux性能统计分析??】检测指定pid的内存20次
for i in { 1..20}; do top -n 1 -d 1 -p 528|grep 528|awk '{print $11}'; sleep 1; done

    推荐阅读