htop
htop工具使用详解
特点:top 的增强版,支持图形界面的鼠标操作,可以横向或者纵向浏览进程列表,杀死进程时不需要输入进程编号
安装:通过yum install -y htop
[root@iZ28qzns9m4Z ~]# yum install htop Loaded plugins: langpacks base | 3.6 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/3): epel/x86_64/updateinfo | 362 kB 00:00 (2/3): epel/x86_64/primary_db | 3.5 MB 00:00 (3/3): updates/7/x86_64/primary_db | 4.0 MB 00:01 Package htop-1.0.3-3.el7.x86_64 already installed and latest version Nothing to do [root@iZ28qzns9m4Z ~]#
F1帮助
F2设定
1.Meters
设定顶端的 显示信息,分为左右两侧,Left column 表示左侧的显示的信息,Right column表示右侧显示的信息,如果要新加选项,可以选择Available meters添加,F5新增到上方左侧,F6新增到上方右侧。Left column和Right column下面的选项,可以选定信息的显示方式,有LED、Bar(进度条)、Text(文本模式),可以根据个人喜好进行设置
2. Display options
Linux htop工具使用详解选择要显示的内容,按空格 x表示显示,选择完后,按F10保存
3.Colors
Linux htop工具使用详解设定界面以什么颜色来显示,个人认为用处不大,各人喜好不同,假如我们选择Black on White后显示效果如下
4.Colums
作用是增加或取消要显示的各项内容,选择后F7(向上移动)、F8(向下移动)、F9(取消显示、F10(保存更改))此处增加了PPID、PGRP,根据各人需求,显示那些信息
F3搜索
F4增量进程过滤器
F5显示树状结构
F6选择排序方式
F7 可减少nice值提高对应进程的优先级 数值越小越重要,优先级越高
F8可增加nice值,降低对应进程的优先级
F9可对进程传递信号 杀死进程
F10结束
htop常用交互式命令:
u: 过滤仅显示选定用户的进程;
s: 跟踪选定的进程所发起的系统调用;
l: 显示选定进程所打开的文件;
t: 显示进程的层次结构;
a: 设定进程的cpu亲缘性;(将选定的进程绑定在指定的CPU上)
选项:
-d #: 延迟时长
-u USERNAME: 仅显示指定用户的进程;
-s COLUMN: 根据指定的字段进行排序;
vmstat :
是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况,相比top,可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率
用法:vmsate [delay [count]]
[root@iZ28qzns9m4Z ~]# vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 291464 173488 319600 0 0 0 1 14 24 0 0 100 0 0 0 0 0 291488 173488 319600 0 0 0 0 467 247 1 0 99 0 0 0 0 0 291488 173488 319600 0 0 0 8 479 243 0 1 100 0 0 0 0 0 291552 173488 319600 0 0 0 0 506 257 0 0 100 0 0 0 0 0 291556 173488 319600 0 0 0 0 446 248 0 0 100 0 0
注:2为执行频率为2秒一次,5为一共执行5次
procs:
r: 等待运行的进程的个数;(队列长度)
b:处理不可中断睡眠状态的进程的个数;(即IO阻塞队列长度)
memory:
swpd: 交换内存使用量;
free: 空间的物理内存量;
buffer: 用于buffer的内存总量;
cache: 用于cache的内存总量;
swap:
si: 数据进入swap中的速率(kb/s)
so: 数据离开swap的速率(kb/s)
io
bi: 从块设备读入数据到系统的速率(kb/s)
bo: 保存数据至块设备的速率(kb/s)
system
in: 中断速率
cs: 进程切换的速率
cpu
us:用户CPU时间,us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id:空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用 率,sy是系统CPU使用率。
wa:等待IO CPU时间。
选项:
-s:显示内存的状态统计数据
[root@iZ28qzns9m4Z ~]# vmstat -s 1016656 K total memory 725196 K used memory 365492 K active memory 195836 K inactive memory 291460 K free memory 173488 K buffer memory 319596 K swap cache 0 K total swap 0 K used swap 0 K free swap 110198 non-nice user cpu ticks 587 nice user cpu ticks 113672 system cpu ticks 161711582 idle cpu ticks 11229 IO-wait cpu ticks 39 IRQ cpu ticks 5372 softirq cpu ticks 196502 stolen cpu ticks 227801 pages paged in 1315272 pages paged out 0 pages swapped in 0 pages swapped out 794969704 interrupts 382508916 CPU context switches 1442223029 boot time 83643 forks [root@iZ28qzns9m4Z ~]#
glances
glances 是一款用于 Linux、BSD 的开源命令行系统监视工具,它使用 Python 语言开发,能够监视 CPU、负载、内存、磁盘 I/O、网络流量、文件系统、系统温度等信息
安装:
[root@iZ28qzns9m4Z ~]# cat /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch http://mirrors.aliyuncs.com/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
glances:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
常用选项:
-b: 以Byte/s为单位显示网卡设备数据交换速率;
-B @IP|host :绑定服务器端 IP 地址或者主机名称
-c @IP|host:连接 glances 服务器端
-C file:设置配置文件默认是 /etc/glances/glances.conf
-d:关闭磁盘 I/O 模块
-e:显示传感器温度
-f file:设置输出文件(格式是 HTML 或者 CSV)
-m:关闭挂载的磁盘模块
-n:关闭网络模块
-p PORT:设置运行端口默认是 61209
-P password:设置客户端 / 服务器密码
-s:设置 glances 运行模式为服务器
-t sec:设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767
-h : 显示帮助信息
-v : 显示版本信息。
-o {HTML|CSV}:
-r: 关闭进程列表功能模块
-1:单独显示每颗CPU相关负载数据信息;
交互命令:
h : 显示帮助信息
q : 离开程序退出
c :按照 CPU 实时负载对系统进程进行排序
m :按照内存使用状况对系统进程排序
i:按照 I/O 使用状况对系统进程排序
p: 按照进程名称排序
d : 显示磁盘读写状况
w : 删除日志文件
l :显示日志
s: 显示传感器信息
f : 显示系统信息
1 :轮流显示每个 CPU 内核的使用情况(次选项仅仅使用在多核 CPU 系统
glances支持远程模式:
即可以以C/S模式工作:
Server: 以监听模式启动glances;
Client: 以远程模式启动glances,远程连入指定服务器,并Server上的相关性能数据;
①安装pip-python
wget --no-check-certificate 下载程序包 tar zxvf pip-1.4.1.tar.gz cd pip-1.4.1/ python setup.py install pip install -U Markdown yum install lm_sensors 安装监控主板程序包 pip install Jinja2 glances -o HTML -f /var/www/html glances -o CSV -f /home/cjh/glances.csv 输出为csv 格式 libreoffice --calc %U /tmp/glances.csv
服务模式:
glances -s -B IPADDR
-B: 用于指明监听的本地地址;
客户端模式:
glances -c IPADDR
-c: 用于连入的服务器的地址;
dstat:
dstat: 整合了vmstat, iostat, netstat and ifstat四款工具的功能;
dstat [-afv] [options..] [delay [count]]
-c: 显示cpu性能指标相关的统计数据;
-d: 显示disk相关的速率数据;
-g: 显示page相关的速率数据;
-i: 显示interrupt相关的速率数据;
-l: 显示load average相关的统计数据;
-m: 显示memory相关的统计数据;
-n: 显示网络收发数据的速率;
-p: 显示进程相关的统计数据,
-r: io请求的速率;
-s: 显示swap的相关数据
-y: 显示系统相关的数据,包括中断和进程切换;
--top-cpu:显示最占用CPU的进程;
--top-bio:显示最消耗block io的进程;
--top-io:最占用io的进程;
--top-mem:显示最占用内存的进程;
--ipc: 显示进程间通信相关的速率数据;
--raw: 显示raw套接的相关的数据;
--tcp: 显示tcp套接字的相关数据;
--udp: 显示udp套接字的相关数据;
--unix: 显示unix sock接口相关的统计数据;
--socket: 显示网络接口统计数据
-a: -cdngy
想输出一个csv格式的文件用于以后,可以通过下面的命令
dstat �Coutput /tmp/sampleoutput.csv -cdn
kill以及 killall
signal: 传递给进程的短小信息
Linux主机支持的进程间可用到的信息:
(1) kill -l
(2) man 7 signal
向进程发信号:
kill [-SIGNAL] PID
默认的信号为SIGTERM;
信号表示方式:
(1) 完整名称,例如SIGINT
(2) 简写名称,例如INT
(3) 数据代称,例如2
常用信号:
SIGHUP: 1, 通知进程重读其配置文件以让新的配置生效,但不用重新启动进程;
SIGINT:2, 打断正在运行中的进程,相当于键盘组合键Ctrl+c
SIGKILL:9, 强行中止正在运行中的进程
SIGTERM: 15, 安全中止正在运行中的进程
SIGSTOP: 19, 暂停进程
SIGCONT: 18, 继续运行指定进程
kill相似的一组进程:
killall [-SIGNAL] PROGRAM
[root@iZ28qzns9m4Z pip-1.4.1]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Sep14 ? 00:00:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 Sep14 ? 00:00:00 [kthreadd] root 330 1 0 Sep14 ? 00:00:04 /usr/lib/systemd/systemd-journald root 342 1 0 Sep14 ? 00:00:00 /usr/sbin/lvmetad -f root 348 1 0 Sep14 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 424 1 0 Sep14 ? 00:00:01 /usr/sbin/rsyslogd -n root 426 1 0 Sep14 ? 00:00:11 /usr/lib/systemd/systemd-logind dbus 427 1 0 Sep14 ? 00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation nscd 429 1 0 Sep14 ? 00:00:03 /usr/sbin/nscd root 444 1 0 Sep14 ? 00:00:04 /usr/sbin/crond -n root 459 1 0 Sep14 tty1 00:00:00 /sbin/agetty --noclear tty1 ntp 466 1 0 Sep14 ? 00:00:10 /usr/sbin/ntpd -u ntp:ntp -g root 512 1 0 Sep14 ? 00:00:00 /sbin/iprupdate --daemon root 515 1 0 Sep14 ? 00:00:00 /sbin/iprinit --daemon root 534 1 0 Sep14 ? 00:00:00 /sbin/iprdump --daemon root 643 1 0 Sep14 ? 00:12:08 /usr/local/aegis/aegis_update/AliYunDunUpdate root 890 1 0 Sep14 ? 00:00:00 /usr/sbin/gshelld root 943 1 0 Sep14 ? 00:33:30 /usr/local/aegis/aegis_client/aegis_00_79/AliYunDun root 961 1 0 Sep14 ? 00:32:43 /usr/local/aegis/alihids/AliHids root 2972 1 0 Sep18 ? 00:00:37 /usr/sbin/httpd -DFOREGROUND apache 11291 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11292 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11293 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11294 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 18579 21752 0 09:55 ? 00:00:00 sshd: root@pts/0 root 18581 18579 0 09:55 pts/0 00:00:00 -bash root 18687 2 0 11:10 ? 00:00:00 [kworker/0:2] root 18858 2 0 14:01 ? 00:00:00 [kworker/0:1] apache 18869 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18870 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18871 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18872 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18876 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18992 2972 0 14:29 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 19018 2 0 15:00 ? 00:00:00 [kworker/0:0] root 19039 18581 0 15:03 pts/0 00:00:00 ps -ef root 21752 1 0 Sep20 ? 00:00:00 /usr/sbin/sshd -D root 32457 2 0 Sep17 ? 00:00:00 [kworker/0:1H] [root@iZ28qzns9m4Z pip-1.4.1]# killall httpd [root@iZ28qzns9m4Z pip-1.4.1]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Sep14 ? 00:00:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 261 2 0 Sep14 ? 00:00:00 [ext4-dio-unwrit] root 330 1 0 Sep14 ? 00:00:04 /usr/lib/systemd/systemd-journald root 342 1 0 Sep14 ? 00:00:00 /usr/sbin/lvmetad -f root 348 1 0 Sep14 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 424 1 0 Sep14 ? 00:00:01 /usr/sbin/rsyslogd -n root 426 1 0 Sep14 ? 00:00:11 /usr/lib/systemd/systemd-logind dbus 427 1 0 Sep14 ? 00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation nscd 429 1 0 Sep14 ? 00:00:03 /usr/sbin/nscd root 444 1 0 Sep14 ? 00:00:04 /usr/sbin/crond -n root 459 1 0 Sep14 tty1 00:00:00 /sbin/agetty --noclear tty1 ntp 466 1 0 Sep14 ? 00:00:10 /usr/sbin/ntpd -u ntp:ntp -g root 512 1 0 Sep14 ? 00:00:00 /sbin/iprupdate --daemon root 515 1 0 Sep14 ? 00:00:00 /sbin/iprinit --daemon root 534 1 0 Sep14 ? 00:00:00 /sbin/iprdump --daemon root 643 1 0 Sep14 ? 00:12:08 /usr/local/aegis/aegis_update/AliYunDunUpdate root 890 1 0 Sep14 ? 00:00:00 /usr/sbin/gshelld root 943 1 0 Sep14 ? 00:33:31 /usr/local/aegis/aegis_client/aegis_00_79/AliYunDun root 961 1 0 Sep14 ? 00:32:43 /usr/local/aegis/alihids/AliHids root 18579 21752 0 09:55 ? 00:00:00 sshd: root@pts/0 root 18581 18579 0 09:55 pts/0 00:00:00 -bash root 18687 2 0 11:10 ? 00:00:00 [kworker/0:2] root 18858 2 0 14:01 ? 00:00:00 [kworker/0:1] root 19018 2 0 15:00 ? 00:00:00 [kworker/0:0] root 19047 18581 0 15:04 pts/0 00:00:00 ps -ef root 21752 1 0 Sep20 ? 00:00:00 /usr/sbin/sshd -D root 32457 2 0 Sep17 ? 00:00:00 [kworker/0:1H] [root@iZ28qzns9m4Z pip-1.4.1]#
前台作业:通过终端启动,并且在停止之前也会一直占据终端;
后台作业:作业启动之时与终端无关,或者是在前台启动,但启动后转为与终端无关模式运行;
1、对于已经启动并处于运行中的作业:Ctrl+z
注意: 作业被送往后台后,默认处于stopped状态;
2、对于尚未启动的作业: COMMAND &
注意: 此两类方式相关作业,仍然与终端相关;这意味着,终端终止,将会导致与此终端相关的所有作业被终止;
剥离进程与终端的关系:
# nohup COMMAND &
作业控制命令:
fg [[%]job_num]:把指定的作业调回前台;
bg [[%]job_num]:把调往后台的指定的作业启动起来,让其后台默默运行;但此作业必须支持运行 于后台;
kill [%job_num]:终止指定的作业;
进程优先级调整:
静态优先级:
通过指定进程的nice值来调整其优先级;用户 空间运行的进程一般都有其nice值;
nice值: -20, 19
优先级: 100, 139
默认启动进程时,其nice值为0, 其优先级为120;
(1) 对于尚未启动的进程:
# nice -n N COMMAND
(2) 对于已经启动并处于运行中的进程:
# renice -n N PID
注意:普通用户默认只能调低优先级即仅能够调大nice,;
[root@iZ28qzns9m4Z ~]# top & [1] 959 [root@iZ28qzns9m4Z ~]# jobs [1]+ Stopped top [root@iZ28qzns9m4Z ~]# glances & [2] 969 [root@iZ28qzns9m4Z ~]# jobs [1]- Stopped top [2]+ Stopped glances [root@iZ28qzns9m4Z ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 852348 11224 80356 0 0 529 14 522 307 1 1 91 3 4 [root@iZ28qzns9m4Z ~]# ^C [root@iZ28qzns9m4Z ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 852292 11224 80388 0 0 519 14 521 306 1 1 92 2 4 [root@iZ28qzns9m4Z ~]# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 852508 11224 80388 0 0 502 14 515 304 1 1 92 2 4 ^Z [3]+ Stopped vmstat 2 [root@iZ28qzns9m4Z ~]# jobs [1] Stopped top [2]- Stopped glances [3]+ Stopped vmstat 2 Welcome to aliyun Elastic Compute Service! #重启终端后台作业消失 [root@iZ28qzns9m4Z ~]# jobs [root@iZ28qzns9m4Z ~]# [root@iZ28qzns9m4Z ~]# vi aaa [2]+ Stopped vi aaa [root@iZ28qzns9m4Z ~]# job -bash: job: command not found [root@iZ28qzns9m4Z ~]# jobs [1]- Stopped glances [2]+ Stopped vi aaa [root@iZ28qzns9m4Z ~]# fg %1 glances [root@iZ28qzns9m4Z ~]# glances & [3] 1067 [root@iZ28qzns9m4Z ~]# jobs [2]- Stopped vi aaa [3]+ Stopped glances [root@iZ28qzns9m4Z ~]# bg 2 [2]- vi aaa & [root@iZ28qzns9m4Z ~]# jobs [2]+ Stopped vi aaa [3]- Stopped glances [root@iZ28qzns9m4Z ~]#