Please enable Javascript to view the contents

系统资源监控工具 top atop glances 之用法

 ·  🕒 4 分钟  ·  ✍️ 加文 · 👀... 阅读

top

1、交互时命令

H # 显示或隐藏进程下各线程信息
c # 显示 command 列的完整路径
e # 切换各指标 k m g t 单位
r # 设置进程 nice 值,以便调整进程优先级
d # 设置界面刷新频率,默认 3s
u # 按用户名过滤进程
i # 隐藏空闲线程
k # kill 某个进程
O # 根据字段列的值进行过滤,如 %CPU>2.0 或 COMMAND=mysqld,可通过多次添加设置多个过滤条件

pgup/pgdn 翻页

f   # 字段控制,如增加、删除、任意列排序设置等
R   # 字段值排序(降序或升序)切换
P   # 按 cpu 排序
M   # 按 memory 排序
T   # 按 TIME+ 排序
N   # 按 pid 排序
xb  # 高亮显示排序列

W 保存当前设置,以便下次使用 top 命令仍然有效

Linux Top 详细介绍

top 命令输出
TIME+ 列,进程所使用的 CPU 时间,而非进程启动到现在的时间
0.0% ni, 在用户空间中,改变过优先级的进程占用 CPU 百分比

buff(Buffer Cache)是一种 I/O 缓存,用于内存和硬盘的缓冲,是 io 设备的读写缓冲区。根据磁盘读写设计,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
cache(Page Cache) 是一种高速缓存,用于 CPU 和内存之间的缓冲, 是文件系统的 cache
buf 和 cache 都是 RAM 中的数据,都占用内存;简单来说,buff 是即将要被写入磁盘的,而 cache 是被从磁盘中读出来的

top -H -p 13015 # 查看指定进程下各线程资源使用情况

ps -o comm,lstart,etime -p 1018 # lstart 启动时间点,etime 进程已运行多少时间。如下输出表示运行了 8 天 23 小时 31 分钟

COMMAND STARTED ELAPSED
sshd Tue May 30 15:21:51 2023 8-23:31:00

1、进程优先级
nice 取值范围 -20 ~ 19, 值越低,表明优先级越高,因此 -20 是最高优先级,19 则是最低优先级,默认 0
在 Linux 内核中,priority 的范围是 0~139,值越低,优先级越高,其中 0~99 范围是提供给实时任务使用的,而 nice 值是映射到 100~139,这个范围是提供给普通任务用的,因此 nice 值调整的是普通任务的优先级
priority(new) = priority(old) + nice

atop

atop 是一个交互式监视器,用于查看 Linux 系统上的负载,其显示了系统级别上最关键的硬件资源的占用情况,即 CPU、内存、磁盘、网络。请注意,线程级 network 带宽监控需安装内核补丁 netatop 使用
根据系统内核版本下载对应的 netatop 版本,官方安装说明见压缩包内 README 文件

  • netatop 下载地址
  • Version 1.0 适用于内核版本 4.4 及更高版本
  • Version 2.0 适用于内核版本 4.13 及更高版本
  • Version 3.1 适用于内核版本 5.6 及更高版本

安装

2、CentOS 7.9 编译安装内核补丁 netatop

yum install atop

wget https://www.atoptool.nl/download/netatop-0.3.tar.gz
tar xf netatop-0.3.tar.gz
cd netatop-0.3

yum install gcc make zlib-devel
yum install kernel-devel-$(uname -r)

make
make install

/etc/init.d/netatop start

3、Ubuntu 20 编译安装内核补丁 netatop

apt install atop

wget https://www.atoptool.nl/download/netatop-2.0.tar.gz
tar xf netatop-2.0.tar.gz
cd netatop-2.0

sudo apt install g++ make zlib1g-dev

make
make install

/etc/init.d/netatop start

交互式命令

# 交互时命令
g  # 通用信息
d  # 磁盘信息
m  # 内存信息
n  # 网络信息,需配合内核补丁 netatopd 使用
s  # 调度和线程详细信息,scheduling and thread-group info

y  # 查看进程下各线程资源占用情况
r  # 重置统计状态
u  # 基于用户的资源使用统计状态

/  # 根据程序命令过滤,仅显示特定的程序
I  # 据进程 PID 过滤
U  # 据用户名过滤
a  # 活动进程线程或所有进程线程的显示切换
i  # 修改刷新间隔时间,默认每 10s

字段说明

1、g 通用信息列

SYSCPU      # 该进程在系统模式(内核模式)下的 CPU 时间消耗,通常是由于系统调用处理
USRCPU      # 进程在用户模式下的 CPU 时间消耗
RDELAY      # 运行队列延迟,即等待运行队列所花费的时间
VGROW       # 进程在上一个时间间隔内增长的虚拟内存量
RGROW       # 进程在上一个时间间隔内增长的常驻内存量(物理)
RDDSK       # 磁盘读吞吐量
WRDSK       # 磁盘写吞吐量
RNET        # The number of TCP and UDP packets received by this process
SNET        # The number of TCP and UDP packets transmitted by this process
THR         # 该进程下的线程数
S           # 进程状态
CPUNR       # 运行在那颗 vCPU 上

2、n 网络信息列

TCPRCV      # The number of TCP packets received for this process,    该进程 每秒接收 的 tcp 包数量
TCPRASZ     # The average size of a received TCP buffer in bytes,     tcp buffer (接收方向)平均大小,单位字节
TCPSND      # The number of TCP packets transmitted for this process, 该进程 每秒发送 的 tcp 包数量
TCPSASZ     # The average size of a transmitted TCP buffer in bytes,  tcp buffer (发送方向)平均大小,单位字节
BANDWI      # 每秒下行带宽
BANDWO      # 每秒上行带宽
NET         # 网络利用率

glances

mysql 压测

apt install mysql-server

通过模拟多个并发客户端访问 MySQL 来执行压力测试,同时详细的提供了 “ 高负荷下 MySQL ” 的数据性能报告

# -a 自动生成测试表和数据, -c 500 模拟 500 个并发数,-i 10 测试迭代次数 10
mysqlslap -a -c 500 -i 20 -uroot -p
#> Enter password:
#> Benchmark
#>         Average number of seconds to run all queries: 2.966 seconds
#>         Minimum number of seconds to run all queries: 2.890 seconds
#>         Maximum number of seconds to run all queries: 3.129 seconds
#>         Number of clients running queries: 500
#>         Average number of queries per client: 0

加文
作者: 加文
运维工程师
版权声明:自由转载-非商用-非衍生-转载请注明出处!


目录