一、系统性能监控htop工具的使用方法:
htop:
htop是一个Linux下的交互式的进程浏览器,可以用来替换Linux下的top命令;
top是所以unix系统的必备工具,能直观方便的查看到系统负载、内存及进程等信息。
而top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。
可以在查找应用程序内存泄露问题时使用 提供更方便、光标控制的界面来杀死进程;可以横向或纵向滚动浏览器进程列表,以便看到所有的进程和完整的命令行;
二、htop 命令的用法:
直接执行htop命令:显示如下
最上面左边: 显示了CPU、内存、Swap占用率,数字标识标识cpu每颗核心的使用率;
最上边右边: 第一行:进程总数、当前运行的进程;
第二行:5、10、15分钟的负载状况;
第三行:显示系统运行的时间;
中间绿色行的主体部分:
PID:进程标识号
USER:进程使用者的用户名
PRI:进程的优先级
NI:进程优先级别的值
VIRT:占用的虚拟内存值
RES:占用的物理内存值
SHR:共享内存值
S:进程的状态,R运行状态,S可中断睡眠,D不可中断睡眠,T停止状态,Z僵死态,N低优先级进程
CPU%: 进程占用的CPU使用率
MEM%:进程占用的物理内存的百分比
TIME+:进程启动后占用的CPU总时间
COMMAND:进程启动的命令
底部:有菜单栏,有帮助信息、设置方式等等;
htop交互式命令:
u:仅显示指定用户的信息
s:跟踪选定的进程所发起的系统调用;
l:显示选定进程所打开的文件;
t:显示进程的层次结构;
a:设定进程的CPU亲缘性;(将选定的进程绑定在指定的CPU上)
htop选项:
-d#:指明延迟时长
-u USERNAME :仅显示制定用户的进程
-s COLUMN:根据指定的字段显示
Glances的使用方法:
Glances 是用 Python 开发的,使用 psutil 库来采集系统数据,在用户的终端上实时动态的显示重要的系统数据和变化。显示的数据包括:CPU、内存、磁盘、网络等使用情况,内核、运行队列、负载、I/O 状态、消耗资源最多的进程等等。
运行glances命令:显示如下信息:
颜色属性的含义:
绿色表示性能良好,无需做任何额外工作;(此时 CPU 使用率、磁盘空间使用率和内存使用率低于 50%,系统负载低于 0.7)。
蓝色表示系统性能有一些小问题,用户应当开始关注系统性能;(此时 CPU 使用率、磁盘空间使用率和内存使用率在 50%-70% 之间,系统负载在 0.7-1 之间)。
品红表示性能报警,应当采取措施比如备份数据;(此时 CPU 使用率、磁盘空间使用率和内存使用率在 70%-90% 之间,,系统负载在 1-5 之间)。
红色表示性能问题严重,可能宕机;(此时 CPU 使用率、磁盘空间使用率和内存使用率在大于 90%,系统负载大于 5)。
阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。
我们可以按照自己的需求在配置文件(默认在 /etc/glances/glances.conf)中自定义。
常用选项:
-b:以Byte/s为单位显示网卡设备数据交换速率
-d:管理磁盘I/0功能模块:
-f /PATH/TO/SOMEFILE:设置输出文件的位置及格式;
-o{HTML|CSV}:设定输出格式;
-m:关闭Mount功能模块;
-n:关闭网络功能模块;
-r:关闭进程列表功能模块;
-t #: 指明延迟时长;默认为3秒;
-1:单独显示每颗CPU相关的负载数据信息;
h:帮助信息 (交互式命令:)
glances支持远程模式:
即可以以C/S模式工作;
Server:以监听模式启动glances;
Client:以远程模式启动glances,远程连入指定服务器, 并Server上的相关性能数据;
服务模式:
glances -s -B IPADDR
-B:用于指明监听的本地地址
客户端模式:
glances -c IPADDR
-c: 用于连入的服务器的地址;
Dstat : 整合了vmstat,iostat,netstat and ifstat 四款工具的功能;
dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。
dstat可以让你实时地看到所有系统资源。
dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。
Dstat 命令执行后显示如下图:
参数的意义:
-c:显示CPU性能指标相关的统计数据;
-d:显示disk相关的速率数据;
-g:显示page相关的速率数据;
-i:显示interrupt相关的统计速率数据;
-l:显示loadaverage平均负载相关的统计数据;
-m: 显示memory相关的统计数据;
-n:显示network收发数据的速率;
-p: 显示进程相关的统计数据;
-r:I/O 请求的速率;
-s:显示swap的相关数据;
-y: 显示系统相关的数据,包括中断,和进程切换;
--top-cpu: 显示最占用CPU的进程;
--top-bio:显示最消耗block io的进程;
--top-io: 显示占用io的进程
--top-mem: 显示最占用每次的进程;
--ipc:显示进程间通信相关的速率数据;
--raw: 显示裸套接字的相关数据;
--tcp: 显示tcp套接字的相关数据;
--udp: 显示udp套接字的相关数据;
--unix: 显示unixsock接口相关的统计数据;
--sockit: 显示上面所有tcp,udp,unix,raw
--output 文件此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。e.g dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中
查看全部内存都有谁在占用:
# dstat -g -l -m -s --top-mem
显示一些关于CPU资源损耗的据:
# dstat -c -y -l --proc-count--top-cpu
更加详细的用法请大家使用man dstat 咯!