文章目录
1. 查看CPU核数、内存
1.1 CPU相关命令
top uptime lscup pidstat
mpstat
sar
怀疑 CPU 存在瓶颈,可用sar -u和sar -q等来查看
怀疑内存存在瓶颈,可用sar -B、sar -r和sar -W等来查看
怀疑 I/O 存在瓶颈,可用sar -b、sar -u和sar -d等来查看
参考链接: Linux之CPU物理核与逻辑核
1.1 查看CPU 物理核数、逻辑核数
查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
1.2 top 使用
推荐链接: top命令参数详解
- 更改显示内容
通过按 f 键可以编辑显示内容,按f键后,
①当前是按照%CPU这一列来排序的
②可以通过上、下键来选择
③按右键可以选择整个列,然后按上、下键来移动整个列的显示位置,前移或后移,按回车确定
④按空格键来显示或隐藏该列,带的是显示,不带的是不显示
⑤按s键可以将当前列设置为排序列
⑥按q键退出 - top的交互命令
【1】敲top后,按键盘数字“1”可以监控每个逻辑CPU的状况:
【2】敲top后,输入u,然后输入用户名,则可以查看相应的用户进程;
【3】敲top后,top命令默认以K为单位显示内存大小,我们可以通过大写字母E来切换内存信息区域的显示单位,如下按一下E切换到MB、GB、TB、PB等
【4】敲top后,输入h进入top命令的帮助文档,了解更多关于top的用法。
1.3 模拟CPU
下面命令会创建 CPU 负荷,方法是通过压缩随机数据并将结果发送到 /dev/null:
cat /dev/urandom | gzip -9 > /dev/null
如果你想要更大的负荷,或者系统有多个核,那么只需要对数据进行压缩和解压就行了,像这样:
cat /dev/urandom | gzip -9 | gzip -d | gzip -9 | gzip -d > /dev/null
按下 CTRL+C 来终止进程
1.4 CPU 负载分析
参考链接:cpu 负载和使用率
- uptime 查看负载
top - 19:56:09 up 1 day, 20:19, 3 users, load average: 2.89, 2.40, 3.13
分别是1分钟、5分钟、15分钟的平均Load。
Load这个东西怎么理解呢,就像一条马路,有N个车道,如果N个进程进入车道,那么正好一人一个,再多一辆车就占不到车道,要等有一个车空出车道。
在CPU中可以理解为CPU可以并行处理的任务数,那么就是“CPU个数 * 核数”,如果CPU Load = CPU个数 * 核数 那么就是说CPU正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器,那么保证性能的话,最好是小于CPU个数 * 核数 *0.7。
那么以哪个平均值为准呢?如果1分钟平均出现大于CPU个数 * 核数的情况,还不用担心,如果5分钟平均也是,那就要警惕了,15分钟平均也是这样,就要分析哪里出问题了,防范于未然
- top 查看使用率
按 P 对cpu使用排序
按 1 查看每个cpu的使用率
CPU利用率超过100%的问题,top命令应该是把每个核的CPU占用率加起来,算一个和,于是多核情况下会出现超过100%。
2. 内存相关
参考链接:内存占用分析
2.1 内存相关命令
free vmstat top htop
2.2 free
free各个字段的含义:
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据。
cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。
2.3 内存负荷模拟
内存负荷模拟:通过在内存中创建文件系统然后往里面写文件来实现的
首先,创建一个挂载点,然后将 ramfs 文件系统挂载上去:
mkdir z
mount -t ramfs ramfs z/
第二步,使用 dd 在该目录下创建文件。这里我们创建了一个 128M 的文件:
参考链接:Linux 下的dd命令使用详解
dd if=/dev/zero of=z/file bs=1M count=128
#if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
#of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
#bs= 块大小。可以是任何数字后面接上 B(表示字节),K(表示 KB),M( 表示 MB)或者 G(表示 GB)。
#count= 要写多少个块。
第三步,测试完,恢复内存
rm z/file
umount z
rmdir z
3. 磁盘相关
3.1 磁盘相关命令
iostat df du lsblk
3.2 文件IO
3.3 磁盘负荷模拟
4. 网络I/O
4.1 网络I/0相关命令
ifconfig netstat ping nslookup tcpdump nc
5. tcp连接数
5.1 连接数相关命令
6. 系统压力测试工具
6.1 Linux性能工具图谱
6.2 stress & syssstat 安装
stress(Linux系统压力测试工具)和sysstat(Linux性能工具)
- yum 安装
yum install -y sysstat #安装mpstat命令软件
yum install -y epel-release #安装epel软件库
yum install -y stress #安装软件包
- rpm 安装
wget -c http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
sudo rpm -Uvh sysstat-11.7.3-1.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/stress-1.0.4-16.el7.x86_64.rpm
rpm -ivh stress-1.0.4-16.el7.x86_64.rpm