首页  > 道具图鉴 > linux服务器配置及服务器资源命令使用查看

linux服务器配置及服务器资源命令使用查看

道具图鉴 2025-11-16 00:17:46 566

在做性能压测之前,需要对被测服务器有所了解,常用的服务器资源有:CPU、内存、硬盘、网络、进程等

sysstat百度网盘:sysstat 提取码: 0000

linux服务器配置及服务器资源命令使用查看

一、查看系统服务器配置信息二、查看CPU利用率二、平均负载三、查看内存大小及使用率四、磁盘五、网络测试tcp吞吐量:iperf3 -c ip地址测试udp丢包和延迟:iperf3 -c ip地址 -u -b 100M -f M -i 2

六、进程

一、查看系统服务器配置信息

常用命令:cat /proc/cpuinfo或者lscpu、pidstat等 需要关注的: Architecture: x86_64 # 架构信息,表示系统的CPU架构为x86_64,即64位架构 CPU(s): 4 #逻辑cpu个数,表示系统中有4个CPU Model name:Intel® Core™ i5-8500 CPU @ 3.00GHz # 型号名称,表示CPU的具体型号

二、查看CPU利用率

查看cpu利用率可以使用top、pidstat、htop、vmstat、nmon等

top命令,主要查看平均负和和cpu使用率 工作常见场景1:压测用户量不大(50、100),cpu就很高,需要评估服务器是不是很差(达到多少年限需要更换服务器) --项目本身(分析哪个进程导致) 工作常见场景2:压测用户量很大,cpu还是不高,没怎么变化(分析压力是否到服务器,用户数有没有压到位等)

pidstat命令 pidstat命令查看进程级别的CPU利用率 pidstat -u:显示每个进程的CPU利用率

案例:模拟cpu使用率100%的情况下能不能正常运行

安装命令: yum install -y epel-release安装命令:yum install -y stress把sysstat文件夹通过xftp上传到服务器/opt目录下在sysstat目录下对执行文件进行赋权:chmod a+x ./configure在sysstat目录下执行:./configure在sysstat目录下编译:make

分别打开4个窗口

1个窗口(查看平均负载变化):watch -d uptime 2个窗口(在/opt/sysstat目录下执行),查看平均负载情况(间隔5s输出1组数据)或者mpstat -P ALL 5: ./pidstat -u 5 1 3个窗口(4代表4核、600代表5分钟)执行:stress --cpu 4 --timeout 600 再次查看刚才打开的窗口查看平均负载 再次执行(%wait等待):./pidstat -u 5 1 通过top命令或者按1后查看,cpu使用率为100%,cpu核数4个 cpu利用率:分析到哪个进程,有多少被等待的,导致占用cpu过高(java代码、死锁、数据库等问题),还需要进一步分析

CPU高负载案例,模拟负载很高(模拟8个进程)

指令(其他不变,把cpu核数更改为8个):stress --cpu 8 --timeout 600

再次查看刚才打开的窗口查看平均负载(7.64<8)

再次执行(%wait等待):./pidstat -u 5 1 通过top命令或者按1后查看 通过pidstat命令查看cpu严重不足,有很多在等待的进程($wait)

通过上面2个案例分析得出2个结果,如下:

压测的时候,cpu使用率很高,但是平均负载很低?

分析:

当前进程使用了cpu资源,并没有很多进程在等待分析是哪一个进程很高,找到进程高的哪个,再进入进程级别分析(java应用、db、redis等) 压测的时候,cpu使用率很底,但是平均负载很高?

分析:

当前进程使用了cpu资源,有很多进程在等待等待磁盘io操作的进程过多,导致进程队列长多大,使用cpu的进程少

常见案例1:磁盘的读写操作过多,出现io等待常见案例2:mysql没有索引或者死锁问题,都需要等待常见案例3:(NFS共享储存有故障)共享储存读取不到数据,长时间读取无法释放资源,都需要等待 负载分类:cpu负载(计算密集型 计算 逻辑 算法处理)、IO负载(IO密集型)

二、平均负载

常用命令: uptime、top等 平均负载定义:一段时间内正在使用和等待使用CPU的平均进程数 Load Average (平均负载) 就是一段时间(1分钟、5分钟、15分钟)内平均 Load

看趋势的话是从右往左看 , 从 15分钟 ▶ 5分钟 ▶ 1分钟 ,看这个数字是递增还是递减(负载慢慢减小)

举例:

系统负荷为0,正在使用和等待使用CPU的平均进程数都是0系统负荷为0.5,意味着正在使用的cpu一半,没有等待系统负荷为1.0,意味着cpu刚好用完(满负荷跑,没有任何等待,所以性能指标cpu要求0.8或80%)系统负荷为1.7,意味着正在使用和等待的进程(刷新页面时间长等,RT变大)

三、查看内存大小及使用率

常用命令: free、cat /proc/meminfo、top、htop、 vmstat等

free命令 Mem:内存的使用情况 Swap:交换空间的使用情况

所有空闲内存 = free+buffers+cached = total-used 已使用多大内存(used= total – free – buff/cache) 未使用的内存(free= total – used – buff/cache)

|选项 | 释义|

|--|--|

|total |显示系统总的可用物理内存和交换空间大小 |

|used |显示已经被使用的物理内存和交换空间 |

|free | 显示还有多少物理内存和交换空间可用使用|

|shared |显示被共享使用的物理内存大小|

|buff/cache|磁盘缓存的大小|

available|可用于启动新应用程序,无需交换的内存大小|

单位:

free -m:以MB为单位显示内存使用情况free -b:以Byte为单位显示内存使用情况free -G:以GB为单位显示内存使用情况free -l:详细的低内存和高内存统计信息free -t:显示内存总和列free -s:多少秒更新一次持续观察内存使用状况,例如free -s 10,每10s 执行一次命令free -C:更新多少次

vmstat命令

Procs (进程):

r_ : 可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用b_ : 被 blocked 的进程数,正在等待 IO 请求 Memory (内存):

swpd: 已使用的 SWAP 空间大小,KB 为单位free: 可用的物理内存大小,KB 为单位buff: 物理内存用来缓存读写操作的 buffer 大小,KB 为单位cache: 物理内存用来缓存进程地址空间的 cache大小,KB 为单位 Swap (交换区):

si: 数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位so: 数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位 io: (现在的Linux版本块的大小为1024bytes):

bi: 每秒读取的块数bo: 每秒写入的块数 system:

in: (interrupt)则是每秒中断的次数cs: (context switch)是每秒上下文切换的次数 CPU (以百分比表示):

us: 用户进程执行时间(user time)sy: 系统进程执行时间(system time)id: 空闲时间(包括IO等待时间)wa: 等待IO时间 Swap (交换区):

si: 数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位so: 数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位

Tips-1:内存的概念:物理内存核虚拟内存 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)

Tips-2: 交换区的出现:当内存不够时会去向磁盘借磁盘,如果si、so数值比较大,就需要向磁盘借,一般都不会是使用,会关掉,效率很慢,在微服务中或者项目中,可以使用扩容的方法来实现

Tips:内存的寻址时间比磁盘io寻址快 100倍 至 10万倍。(例如 SAP 的 HANA 内存: 2T),内存访问速度是纳秒级(10的-9次方),硬盘的访问速度是微秒级(10的-3次方),例如:内存相当于高铁,磁盘相当于普通火车

四、磁盘

常用命令:iotop 、dd 、df、 iostat 、 sar 、 dstat 、 fio、vmstat等

读写速度: 机械硬盘:>100M/s , 固态硬盘: >500M/s

显示磁盘相关统计信息:vmstat -d

reads【 or writes】

total:成功完成的总读取数merged:分组读取【或写入】(产生一个 I/O)sectors:扇区读取【或写入】成功ms:阅读【或写入】花费的毫秒数 IO

cur:正在进行的 I/Osec:I/O 花费的秒数

df -h:是最常见的磁盘查看命令。它可以显示文件系统的总大小、已用空间、可用空间和挂载点等信息 Size:文件系统总大小, Used:已使用大小, Avail:可用空间linux启动盘制作工具, Use%:表示已使用百分比

五、网络

常用命令:ifconfig、netstat -s、sar、iperf等

ifconfig命令

errors 表示发生错误的数据包数,比如校验错误、帧同步错误等 dropped 表示丢弃的数据包数,即数据包已经收到了 Ring Buffer(这个缓冲区是在内核内存中,更具体一点是在网卡驱动程序里),但因为系统内存不足等原因而发生的丢包 overruns 表示超限数据包数,即网络接收/发送速度过快,导致 Ring Buffer 中的数据包来不及处理,而导致的丢包 因为过多的数据包挤压在 Ring Buffer,这样 Ring Buffer 很容易就溢出了 carrier 表示发生 carrirer 错误的数据包数,比如双工模式不匹配、物理电缆出现问题等 collisions 表示冲突、碰撞数据包数

sar命令 sar -n DEV,显示网口的统计数据; sar -n EDEV,显示关于网络错误的统计数据; sar -n TCP,显示 TCP 的统计数据 rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒 rxkB/s 和 txkB/s 分别是接收和发送的吞吐率,单位是 KB/ 秒 rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒

iperf命令 Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能, 可以报告带宽、延迟抖动和数据包丢 失。 安装方式:1. 如果使用yum install iperf -y命令出现很多[Errno 14] HTTP Error 404 - Not Found,除了更新安装数据源之外,还可以通过wget下载的方式,如下

wget https://downloads.es.net/pub/iperf/iperf-3.0.5.tar.gz

tar -zxvf iperf-3.0.5.tar.gz

cd iperf-3.0.5

./configure

make

make install

其他版本:ifperf各版本链接

共用的参数:

-f [k|m|g|K|M|G] 指定带宽输出单位-p 指定服务器端使用端口或客户端连接端口-i 指定每次报告之前的时间间隔,单位为秒,默认为1-F 指定文件作为数据流进行带宽测试 服务端专有参数:

-s 以服务器模式启动-D 将iperf作为后台守护进程运行 客户端专有参数:

-c 以客户端模式运行-u 指定使用udp协议-b 指定udp模式使用的带宽-t 指定传输数据包的总时间-n [K|M|G] 指定传输数据包的字节数-I 指定读写缓冲区的长度。tcp模式默认为8KB,udp模式默认为1470B-P 指定客户端与服务端之前使用的线程数,默认是1。需要两端同时使用-R 切换发送、接收模式。默认客户端发送,服务端接收,设置此参数后,客户端变为接收,服务端为发送。-w 指定套接字缓冲区大小,在tcp模式下,此值是设置tcp窗口大小的。用来限制可以接受数据包的最大值-B 用来绑定一个主机地址或接口,这个参数仅用于具有放多个网卡的主机。在udp模式下,此参数用于绑 定和加入一个多播组-M 设置tcp最大信息段-N 设置tcp无延迟

测试tcp吞吐量:iperf3 -c ip地址

先启动服务器端窗口不要关闭(一直挂着) 复制一个窗口,执行命令:iperf3 -c ip地址 可以看到iperf3持续传输10s,传输的数据量是52.2GBytes,网卡带宽是44.8Gbits/sec

测试udp丢包和延迟:iperf3 -c ip地址 -u -b 100M -f M -i 2

udp由于不提供可靠的数据传输服务,所以一般都只关注udp的丢包和延迟, 下面是在iperf客户端传输100MB的 udp数据包的输出结果 重点看server report信息 倒数第一列的425/15844 表示丢失的数据包和总得数据包数量。后面的2.7%表示平均丢包的比率 倒数第二列的0.005 ms表示传输延迟

六、进程

常用命令: top 、ps 、 pidstat 、 pstree等

top命令 详解参考:上一篇博客

案例 1 : 找到 CPU 使用率最多的前5个进程:ps auxw --sort=-%cpu | head -6案例 2 : 找到 内存 占用率最多的前5个进程:ps auxw --sort=-%mem | head -6

pidstat命令 -u 默认的参数,显示各个进程的CPU使用统计 -r 显示各个进程的内存使用统计 -d 显示各个进程的IO使用情况 -p 指定进程号 -w 显示每个进程的上下文切换情况 -t 显示选择任务的线程的统计信息外的额外信息

查看那个进程导致CPU使用率,pidstat命令,需要安装:yum install -y sysstat 命令1: pidstat -u 5 1 // 5秒内, 统计1次 命令2: pidstat -w -p 7090 UID: 用户ID PID: 进程ID %usr: 进程在用户空间占用CPU的百分比 %system: 进程在内核空间占用CPU的百分比 %guest: 任务花费在虚拟机上的CPU使用率(运行在 虚拟处理器) %CPU: 任务总的CPU使用率 CPU: 正在运行这个任务的处理器编号 Command: 这个任务的命令名称

pstree 命令 功能: 指定 pid 查找父进程 安装: yum -y install psmisc 命令: pstree -aps 进程号


友情链接:
Copyright © 2015 BOSS网游 - 高价值游戏活动发现中心 All Rights Reserved.