1、pstree命令:显示进程树 1
2
3
4
5
6
7
8
9
10
11
12
13
| [iyunv@localhost ~]# pstree
init─┬─auditd───{auditd}
├─crond
├─dbus-daemon───{dbus-daemon}
├─httpd───3*[httpd───26*[{httpd}]]
├─master─┬─pickup
│
└─qmgr
├─6*[mingetty]
├─mysqld_safe───mysqld───20*[{mysqld}]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───bash───pstree
└─udevd───2*[udevd]
|
# Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中
2、ps命令:显示进程的当前状态 命令格式:ps [ OPTION ] ... (1)常用组合:aux a:与终端相关的进程; u:以用户为中心组织进程状态信息显示 x:与终端无关的进程; 1
2
3
4
5
6
7
8
9
10
| [iyunv@localhost ~]# ps
aux | head -8
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 19232 1512 ? Ss 07:32 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 07:32 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:32 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 07:32 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 07:32 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S 07:32 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 07:32 0:00 [migration/1]
|
各字段解析: VSZ:Virtual memory SiZe,虚拟内存集 RSS:ReSident Size, 常驻内存集 STAT:进程状态 R:running,运行中 S:interruptable sleeping,可中断睡眠 D:uninterruptable sleeping,不可中断睡眠 T:stopped,停止状态 Z:zombie,僵尸状态
+: 前台进程 l:多线程进程 N:低优先级进程 <:高优先级进程 s:session leader
(2)常用组合:-ef -e:显示所有进程 -f:显示完整格式程序信息
(3)常用组合:-eFH -F:显示完整格式的进程信息 -H:以进程层级格式显示进程相关信息 ni:nice值 pri:priority,优先级 psr:processor, CPU rtprio:实时优先级
3、pgrep, pkill pgrep [options] pattern:根据进程相关属性查找进程 pkill [options]pattern:发送信号(signal)到指定进程 options: -uuid: effective user -U uid: real user -t terminal: 与指定终端相关的进程 -l: 显示进程名 -a: 显示完整格式的进程名 -P pid: 显示其父进程为此处指定的进程的进程列表
4、pidof: 根据进程名获取其PID 1
2
| [iyunv@localhost ~]# pidof httpd
1455 1454 1453 1411
|
5、top and htop :显示进程相关信息 (1)top命令: 排序: P:以占据的CPU百分比; M:占据内存百分比; T:累积占据CPU时长;
首部信息显示: uptime信息:l命令 tasks及cpu信息:t命令 cpu分别显示:1 (数字) memory信息:m命令
退出命令:q 修改刷新时间间隔:s 终止指定进程:k
选项: -d #: 指定刷新时间间隔,默认为3秒; -b: 以批次方式; -n #: 显示多少批次; [iyunv@localhost~]# top -d 3 -b -n 2
(2)htop命令: 选项: d #: 指定延迟时间; -u UserName: 仅显示指定用户的进程; -s COLOMN: 以指定字段进行排序; 命令: s: 跟踪选定进程的系统调用; l: 显示选定进程打开的文件列表; a:将选定的进程绑定至某指定CPU核心; t: 显示进程树
6、vmstat命令:虚拟内存状态信息显示 命令格式:vmstat [options][delay [count]] 选项: -s: 显示内存的统计数据
各字段解析: procs: r:等待运行的进程的个数; b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度); memory: swpd:交换内存的使用总量; free:空闲物理内存总量; buffer:用于buffer的内存总量; cache:用于cache的内存总量; swap: si:数据进入swap中的数据速率(kb/s) so:数据离开swap中的数据速率(kb/s) io: bi:从块设备读入数据到系统的速率;(kb/s) bo:保存数据至块设备的速率; system: in:interrupts, 中断速率; cs:context switch, 进程切换速率; cpu: us:用户空间所占CPU使用时间比例 sy:内核空间所占比例 id:空闲时间所占比例 wa:等待IO时间所占比例 st:虚拟机偷盗CPU时间所占比例
7、glances命令: glances [-bdehmnrsvyz1][-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
内建命令: a Sort processes automatically l Show/hide logs c Sort processes by CPU% b Bytes or bits for network I/O m Sort processes by MEM% w Delete warning logs p Sort processes by name x Delete warning and critical logs i Sort processes by I/O rate 1 Global CPU or per-CPU stats d Show/hide disk I/O stats h Show/hide this help screen f Show/hide file system stats t View network I/O as combination n Show/hide network stats u View cumulative network I/O s Show/hide sensors stats q Quit (Esc and Ctrl-C also work) y Show/hide hddtemp stats
常用选项: -b:以Byte为单位显示网卡数据速率; -d:关闭磁盘I/O模块; -f/path/to/somefile: 设定输入文件位置; -o{HTML|CSV}:输出格式; -m:禁用mount模块 -n:禁用网络模块 -t #:延迟时间间隔 -1:每个CPU的相关数据单独显示;
C/S模式下运行glances命令: 服务模式: glances-s -B IPADDR(IPADDR: 指明监听于本机哪个地址)
客户端模式: glances-c IPADDR(IPADDR:要连入的服务器端地址)
8、dstat命令:生成系统资源统计信息工具 dstat [-afv] [options..] [delay [count]] options:-c: 显示cpu相关信息; -C#,#,...,total -d:显示disk相关信息; -Dtotal,sda,sdb,... -g:显示page相关统计数据; -m:显示memory相关统计数据; -n:显示network相关统计数据; -p:显示process相关统计数据; -r:显示io请求相关的统计数据; -s:显示swapped相关的统计数据;
--tcp:显示tcp连接状态 (listen,established, syn, time_wait, close) --udp:显示udp连接状态信息 --unix:unix域套接字状态信息 --raw:raw套接字状态信息 --socket:套接字状态信息 --ipc:ipc状态信息
--top-cpu:显示最占用CPU的进程; --top-io:显示最占用io的进程; --top-mem:显示最占用内存的进程; --top-lantency:显示延迟最大的进程; 例:延时为2,显示5次
9、sar:收集报告或保存系统活动信息 命令格式:sar [options] [-A] [-o [ filename ]] t [n] t:采样间隔 n:采样次数,默认值是1; -ofilename :将命令结果以二进制格式保存在文件中。 options : -A:所有报告的总和 -u:输出CPU使用情况的统计信息 -v:输出inode、文件和其他内核表的统计信息 -d:输出每一个块设备的活动信息 -r:输出内存和交换空间的统计信息 -b:显示I/O和传送速率的统计信息 -a:文件读写情况 -c:输出进程统计信息,每秒创建的进程数 -R:输出内存页面的统计信息 -y:终端设备活动情况 -w:输出系统交换活动信息
1
2
3
4
5
6
7
8
| [iyunv@localhost ~]# sar-u -o sar.txt 2 3 Linux
2.6.32-504.el6.x86_64 (localhost.localdomain) 09/26/2015 _x86_64_ (1 CPU)
11:28:25 PM CPU %user %nice %system %iowait %steal %idle
11:28:27 PM all 0.50 0.00 1.98 0.99 0.00 96.53
11:28:29 PM all 0.00 0.00 1.51 1.51 0.00 96.98
11:28:31 PM all 0.00 0.00 1.50 1.50 0.00 97.00
Average: all 0.17 0.00 1.66 1.33 0.00 96.84
|
1
2
3
4
5
6
7
8
| [iyunv@localhost ~]# sar -r 2 3 Linux
2.6.32-504.el6.x86_64 (localhost.localdomain) 09/26/2015 _x86_64_ (1 CPU)
11:29:54 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
11:29:56 PM 1597996 308496 16.18 20496 162756 91560 3.10
11:29:58 PM 1597872 308620 16.19 20496 162756 91560 3.10
11:30:00 PM 1597872 308620 16.19 20496 162756 91560 3.10
Average: 1597913 308579 16.19 20496 162756 91560 3.10
|
1
2
3
4
5
6
7
8
9
10
11
12
| [iyunv@localhost ~]# sar -d -p 2 1 Linux
2.6.32-504.el6.x86_64 (localhost.localdomain) 09/26/2015 _x86_64_ (1 CPU)
11:34:28 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:34:30 PM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:34:30 PM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:34:30 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
|
常用选项: 查看CPU: sar -u、 sar -q 查看内存:sar -B、sar -r、sar -W 查看I/O:sar -b、sar -u、sar -d -p
10、kill命令:向进程发送控制信号,以实现对进程管理 显示当前系统可用信号: # kill-l # man 7signal
常用信号: 1)SIGHUP: 无须关闭进程而让其重读配置文件; 2)SIGINT: 中止正在运行的进程;相当于Ctrl+c; 9)SIGKILL: 杀死正在运行的进程; 15)SIGTERM:终止正在运行的进程; 18)SIGCONT: 19)SIGSTOP:
指定信号的方法: (1)信号的数字标识;1, 2, 9 (2)信号完整名称;SIGHUP (3)信号的简写名称;HUP
向进程发信号: kill[-SIGNAL] PID...
终止“名称”之下的所有进程: killall[-SIGNAL] Program
11、nice and renice:进程优先级调整 静态优先级:100-139 进程默认启动时的nice值为0,优先级为120; nice命令: nice[OPTION] [COMMAND [ARG]...] renice命令: renice[-n] priority pid... 查看: ps axopid,comm,ni 1
2
3
4
5
6
7
8
9
10
11
| [iyunv@centos7 ~]# nice -n 5 httpd
[iyunv@centos7 ~]# ps -axo pid,comm,ni | grep httpd
6760 httpd 5
6762 httpd 5
6763 httpd 5
6764 httpd 5
[iyunv@centos7 ~]# renice -n 0 `pidof httpd`
6760 (process ID) old priority 5, new priority 0
6762 (process ID) old priority 5, new priority 0
6763 (process ID) old priority 5, new priority 0
6764 (process ID) old priority 5, new priority 0
|
12、Linux的作业控制 前台作业:通过终端启动,且启动后一直占据终端; 后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);
让作业工作与后台 (1)运行中的作业 Ctrl+z (2)尚未启动的作业 #COMMAND & 此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系: #nohup COMMAND & 查看所有作业: # jobs
作业控制: # fg[[%]JOB_NUM]:把指定的后台作业调回前台; # bg[[%]JOB_NUM]:让送往后台的作业在后台继续运行; # kill [%JOB_NUM]:终止指定的作业,必须带%;
|