cpu负载相关的工具
[root@xinsz08-1 ~]# uptime
15:34:07 up 2:55, 4 users, load average: 0.00, 0.00, 0.00
15:34:07 : 当前时间
up 2:55 系统运行时间
4 users: 当前用户登录数
[root@xinsz08-1 ~]# w
15:35:51 up 2:57, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 11Feb20 22days 8.44s 8.44s /usr/bin/Xorg
root pts/0 :0.0 11Feb20 1:13m 0.02s 0.02s /bin/bash
root pts/1 192.168.1.4 Mon15 2days 0.06s 0.06s -bash
root pts/2 192.168.1.4 14:19 0.00s 0.31s 0.15s w
load average: 0.00, 0.00, 0.00 系统负载,也就是任务队列的平均长度。三个数值分别表示 1分钟,5分钟,15分钟前到现在的平均值
举例:
服务器A DELL R720 load average:1.11, 0.08, 0.01 1核
服务器B DELL R730 load average: 5.25, 7.22, 60.1 1核
服务器C DELL R720 load average:10.15, 1011, 10.01 4核
答案: 服务器B负载过高
经验: 单核心,1分钟内系统平均负载不超过3. 4核心不要超过12.
从高往低说明负载是下降的
从低往高的说明负载上升的
问题1.: 找出系统中占用CPU最多的进程
问题2: cpu一直飚高,如何处理
[root@xinsz08-1 ~]# top
top - 15:51:57 up 3:13, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 164 total, 1 running, 163 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3925824k total, 974300k used, 2951524k free, 93056k buffers
Swap: 285688k total, 0k used, 285688k free, 431884k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
264 root 20 0 0 0 0 S 0.3 0.0 0:00.59 jbd2/sda2-8
1521 root 20 0 255m 8612 5208 S 0.3 0.2 0:12.18 vmtoolsd
1 root 20 0 19364 1556 1232 S 0.0 0.0 0:01.48 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/0
按照实际使用cpu,从大到小来排序显示所有进程
[root@xinsz08-1 ~]# ps -aux --sort -pcpu |more
-pcpu 可以显示绝对路径,方便找出木马进程
[root@xinsz08-1 ~]# cat /proc/cpuinfo
processor : 0 支持一个cpu
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
stepping : 3
cpu MHz : 2592.002
cache size : 6144 KB
问题: ps 中的VIRT , RES, HSR?
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等;
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用.
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out;
2、包含其他进程的共享;
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反;
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存;
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小;4
[root@xinsz08-1 ~]# mpstat
Linux 2.6.32-431.el6.x86_64 (xinsz08-1) 2020年03月05日 _x86_64_ (1 CPU)
16时14分30秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时14分30秒 all 0.30 0.01 0.39 0.95 0.00 0.01 0.00 0.00 98.33
[root@xinsz08-1 ~]#
问题: 你们公司用的操作系统是什么?
low: 我们用的centos
high: 我们用的是centos6.7的版本
great: 我们用的centos, 系统版本6.7,内核用的是2.6.32-431 64位的
%usr 用户控件CPU使用占比
%nice 低优先级进程使用CPU占比,nice大于0
%sys 内核空间CPU使用占比
%iowait cpu等待Io占比
%irq cpu处理硬中断占比
%soft 处理软中断的cpu占比
%steal %guest 与虚拟机有关
%idle cpu空间时间占比
内存相关的运行状态工具
free
[root@xinsz08-1 ~]# free -m
total used free shared buffers cached
Mem: 3833 949 2884 0 91 421
-/+ buffers/cache: 435 3397
Swap: 278 0 278
[root@xinsz08-1 ~]#
[root@xinsz08-1 ~]# cat /proc/meminfo
MemTotal: 3925824 kB
MemFree: 2953928 kB
Buffers: 93632 kB
Cached: 432000 kB
SwapCached: 0 kB
Active: 433664 kB 活跃内存
Inactive: 333508 kB 非活跃的内存
Active(anon): 241564 kB
Inactive(anon): 4332 kB
Active(file): 192100 kB
查看与io运行相关的工具
[root@xinsz08-1 ~]# tune2fs -l /dev/sda1 |grep size
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Block size: 1024 #1个字节,一个扇区512字节
Fragment size: 1024
Flex block group size: 16
Inode size: 128
[root@xinsz08-1 ~]#
如何通过iostat查看IO是否存在瓶颈
【root@xinsz08-1 ~]# rpm -ivh /mnt/Packages/sysstat-9.0.4-22.el6.x86_64.rpm
warning: /mnt/Packages/sysstat-9.0.4-22.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
package sysstat-9.0.4-22.el6.x86_64 is already installed
[root@xinsz08-1 ~]# iostat -d -k -p /dev/sda
Linux 2.6.32-431.el6.x86_64 (xinsz08-1) 2020年03月05日 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 2.54 35.36 7.39 495578 103499
sda1 0.05 0.79 0.00 11021 47
sda2 2.46 34.42 7.38 482425 103452
sda3 0.02 0.11 0.00 1528 0
查看Network运行相关的一些工具
1) nload 监控总体带宽的使用情况
[root@xinsz08-64 ~]# yum install epel-release -y
[root@xinsz08-64 ~]# yum install nload
[root@xinsz08-64 ~]# nload //实时监控
[root@xinsz08-64 html]# ab -n 100 -c 2 http://www.baidu.com/index.html
2) nethogs 过滤使用带宽最多的进程
实验环境: centos7
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/nethogs-0.8.5-1.el7.x86_64.rpm
rpm -ivh nethogs-0.8.5-1.el7.x86_64.rpm
执行 nethogs
在另一个终端使用wget下载,来查看nethogs的实时变化
sar: 用来记录系统一段时间的运行状态
安装
[root@xinsz08-64 html]# yum install sysstat
sysstat 工具包可以把检测到的信息保存下来,存到/var/log/sa 目录。 sar默认显示每10分钟 统计一次状态信息。
格式: sar 命令行常用格式: sar [options] -A [-o file] t [n]
-n 网络接口的情况
-u cpu使用率
-d 硬盘的使用报告
-o 文件名 打印到屏幕并采样结果以二进制的方式存入当前目录下的文件夹重
-f 文件名 查看之前保存的二进制文件
举例: 每2秒钟采样一次,连续采样5此, 观察CPU使用情况,并且将采样结果以二进制的形式存入当前目录文件下的cup.sar中
[root@xinsz08-64 ~]# sar -u 2 5 -o cpu.sar
Linux 2.6.32-696.el6.x86_64 (xinsz08-64) 2020年03月06日 _x86_64_ (1 CPU)
16时20分48秒 CPU %user %nice %system %iowait %steal %idle
16时20分50秒 all 0.00 0.00 13.10 1.79 0.00 85.12
16时20分52秒 all 0.00 0.00 1.01 0.00 0.00 98.99
16时20分54秒 all 0.50 0.00 1.49 0.00 0.00 98.01
16时20分56秒 all 0.00 0.00 1.51 0.50 0.00 97.99
16时20分58秒 all 0.00 0.00 1.52 0.00 0.00 98.48
平均时间: all 0.10 0.00 3.42 0.41 0.00 96.06
%user cpu处在用户模式下的时间百分比
%system cpu处在系统模式的时间百分比
%iowait cpu 等待输入输出的完成时间的百分比
%idle cpu空闲的百分比
如何查看生成的文件
[root@xinsz08-64 ~]# sar -u -f cpu.sar
举例: 使用sar查看计划任务
vim /etc/cron.d/sysstat
读取日志 ls /var/log/sa
查看网络接口的流量情况 sar -n DEV -f /var/log/sa/sa04
-r 表示查看内存
-d 硬盘的使用报告