一、CPU信息
#
cat /proc/cpuinfo # 查看cpu信息,有几个cpu就显示几个processor
top # 默认实时显示服务器负载信息,占用的资源从大到小排列
-d: 间隔时间,top -4 每4秒更新一次
-n:获取多次cpu的执行情况,top -n 4 只更新4次
-p:获取指定PID的进程数据
-b:批处理模式
top显示的参数意义
top
users:系统当前用户数
load average:最近1分钟、5分钟和15分钟的系统平均负载
系统平均负载:定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数
Tasks:进程总数
running:正在运行的进程数
sleeping:睡眠的进程数
stopped:停止的进程数
zombie:僵尸进程数,如果很多会影响性能
Cpu
us(user time):用户空间占用CPU百分比
sy(system time):内核空间占用CPU百分比
ni(nice):改变过优先级的进程占用CPU百分比
id(idle):空闲CPU百分比
wa:IO等待占用CPU的百分比
hi:硬中断(Hardware IRQ)占用CPU百分比
si:软中断(Software Interrupts)占用CPU百分比
二、内存
free -h # 显示服务器内存情况
total:总物理内存
used:已经使用的物理内存
free:没有使用过的物理内存
shared:多进程共享内存
buff/cache:读写缓存内存,这部分内存是当空闲来用的,当free内存不足时,linux内核会将此内存释放。buff是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
available:还能被“应用程序”使用的物理内存
三、IO(Input Ouput)
3.1、工具安装
Ubuntu
apt install -y sysstat
apt install iftop
apt install strace
Centos
yum install -y sysstat
yum install -y epel-release
yum install -y iftop
yum install strace
3.2、硬盘IO
# 写
dd if=/dev/zero bs=1024 count=4096000 of=test.iso
# 读
dd if=test.iso bs=64|dd of=/dev/null
bs: 设置读/写缓冲区的字节数
/dev/null: 空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据
/dev/zero: 是一个特殊的文件,当你读它的时候,它会提供无限的空字符
命令查看硬盘io
iostat: 服务器当前硬盘IO情况
-c:只看cpu
-d:只看硬盘
四、网络IO
iftop: 查看网络io
-t:切换显示状态,接收、发送数据
-p:显示端口
iftop -n -i eth0 # 不进行DNS反解析
=>:代表发送数据
<=:代表接收数据
TX:发送
RX:接收
TOTAL:全部流量
cum:目前积累流量
peak:峰值流量
rates:平均值,2秒、10秒和40秒的平均流量
测试系统负载
# yes重复执行30秒, 然后找到yes进程,删除yes进程
{ yes > /dev/null & } && sleep 30 && ps -ef|grep yes | awk '{print $2}'|xargs kill
# 获取CPU个数,开启cpu个数的yes重复执行60秒, 然后找到yes进程,删除yes进程
for i in $(seq 0 $(($(cat /proc/cpuinfo|grep processor|wc -l)-1)));do taskset -c $i yes > /dev/null & done && sleep 60 && ps -ef|grep yes|awk '{print $2}'|xargs kill