概述:php
本篇是上篇进程及做业管理(一)http://1992tao.blog.51cto.com/11606804/1851196的后续内容,将继续介绍进程相关的管理工具!html
=============================================================================linux
1.uptime命令;ios
★uptime命令:apache
显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(一、五、10分钟的平均负载,通常不会超过1);centos
系统平均负载:指在特定时间间隔内运行队列中的平均进程数;安全
若是每一个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。若是每一个CPU内核的任务数大于5,那么这台机器的性能有严重问题;bash
若是linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
服务器
演示:网络
[root@centos7 ~]# uptime 22:22:11 up 13:54, 2 users, load average: 0.00, 0.01, 0.05
2.top命令;
★top命令:- display Linux processes
相对于ps而言,ps显示的是某个时间点的进程状态信息,然而在实际的运用当中,咱们可能须要动态的持续监控进程的运行状态,top命令就能够实现这一功能。
★命令及选项:
☉排序命令:
P:以占据cpu百分比排序;
M:以占据内存百分比排序;
T:累计占用cpu时间排序
☉首部信息命令:
uptime信息:l 命令 是否显示;
tasks及cpu:t 命令 是否显示;
内存信息: m 命令 是否显示;
☉相关操做命令:
退出命令: q
刷新时间间隔:s
终止指定进程:k
☉选项:
-d #:指定刷新时间间隔,默认为3妙;
-n #:以批次方式显示,显示多少批次;
-b :batch,以批次显示;
★每一行表明的含义以下:
☉第一行:uptime 信息
系统当前的时间,即:22:29:39
系统启动到如今所通过的时间,即:up 14:02
当前已登陆系统的用户数,即:2 users
系统在1,5,15分钟的平均负载,值越小表示系统越空闲,若是高于1,就须要注意当前系统负载太高。
☉第二行:
显示的是目前进程的总量与个别程序在什么状态(running,sleeping,stopped,zombie),须要注意的是最后的zmobie值,若是不是0就要查看下哪一个进程处于僵死状态;
☉第三行:
显示的是cpu的总体负载,若是说是多核心的cpu,能够按下数字1来切换成不一样cpu的负载率;
us:user space用户运行程序占用CPU的百分比;
sy:system (kernel space)用于运行内核占用CPU百分比;
ni:nice用户进程空间所改变优先级的进程占用CPU的百分比;
id:idle空闲CPU百分比;
wa:wait io 等待I/O花费时间;
hi:hardware interrupt 硬件中断占用CPU百分比;
si:software interrupt 软件中断占用CPU百分比;
st:stolen,被虚拟机“偷走”的百分比;
☉第四行:
表示物理内存的使用状况;
☉第五行:
表示交换分区的使用状况;
☉第六行:
这里默认是空白显示,当在top程序当中输入命令时,显示状态的地方,这里能够输入的命令有:
P:以占据CPU百分比大小排序;
M:以占据Memory空间大小排序;
T:CPU累计占用时间排序;
l:是否显示系统负载行;
t:是否显示进程摘要信息及CPU负载状态;
1:这里是数字1,平均或单独显示CPU的负载状态;
m:是否显示内存相关的状态信息;
q:退出命令;
s:修改延迟时长;
k:终止指定进程;
★top命令行表明含义:
PID:每一个进程ID;
USER:进程所属的使用者;
PR:Priority的简写,进程的优先级,越小优先级越高;
NI:Nice的简写,与Priority有关,也是越小越早被运行;
VIRT:进程须要的虚拟内存大小,而非使用的虚拟内存大小;
RES:进程当前使用的内存大小,不包括swap;
SHR:进程与其余进程共享的内存大小,可经过RES-SHR来计算进程所占用的物理内存;
S: 进程状态;
%CPU:CPU的使用率;
%MEM:物理内存是使用率;
TIME+:CPU使用时间的累加
3.htop命令;
★htop命令:
除了top命令外,还有一个top的加强版命令htop,系统默认状况下没有安装,须要epel源来进行安装;(在工做中epel源,直接指定阿里云,网易或者搜狐的镜像网站便可)
☉选项:
-d #:指定延迟时间;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
☉htop界面所支持的一些交互式命令:
s:跟踪选定进程的系统调用;
l:显示选定进程打开的文件列表;
a:将选定的进程绑定至某指定CPU核心;
t:显示进程树
注:
详细使用方法参考:
演示:
[epel] name=Fedora-epel/7/x86_64 baseurl=http://10.1.0.1/fedora-epel/$releasever/$basearch/ # 使用的是变量 6和7都适用 gpgcheck=0
安装好以后,直接经过 # yum install htop 命令进行安装,安装后执行htop命令便可,
以下:
帮助以下:
★做用:
动态显示系统资源的使用状况,这些资源包括:内存、磁盘、网络、cpu等资源
1.vmstat命令;
★vmstat命令:虚拟内存信息
☉用法:
vmstat[options] [delay [count]]
☉每一行所表明的含义:
☉选项:
-s:显示内存统计数据
演示:
[root@centos7 ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 458712 1372 295840 0 0 4 0 29 24 0 0 99 0 0 # 每两秒中显示一次,共显示3次 [root@centos7 ~]# vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 458664 1372 295840 0 0 4 0 29 24 0 0 99 0 0 0 0 0 458664 1372 295840 0 0 0 0 21 21 0 0 100 0 0 0 0 0 458664 1372 295840 0 0 0 0 21 13 0 0 100 0 0
# 显示内存统计数据信息 [root@CentOS6 ~]# vmstat -s 1004136 total memory 367776 used memory 171720 active memory 89104 inactive memory 636360 free memory 48268 buffer memory 194220 swap cache 2097148 total swap 0 used swap 2097148 free swap 1290 non-nice user cpu ticks 50 nice user cpu ticks 4044 system cpu ticks 1415750 idle cpu ticks 4467 IO-wait cpu ticks 10 IRQ cpu ticks 854 softirq cpu ticks 0 stolen cpu ticks 244210 pages paged in 47602 pages paged out 0 pages swapped in 0 pages swapped out 236639 interrupts 233074 CPU context switches 1488242549 boot time 3436 forks
2.pmap命令;
★pmap命令 报告进程的内存映射
☉用法:
pmap [options] pid[...]
-x:显示详细格式的信息;
演示:
[root@centos7 ~]# pmap 1 1: /usr/lib/systemd/systemd --switched-root --system --deserialize 21 00007ff0a5d59000 16K r-x-- libuuid.so.1.3.0 00007ff0a5d5d000 2044K ----- libuuid.so.1.3.0 00007ff0a5f5c000 4K r---- libuuid.so.1.3.0 00007ff0a5f5d000 4K rw--- libuuid.so.1.3.0 00007ff0a5f5e000 224K r-x-- libblkid.so.1.1.0 00007ff0a5f96000 2048K ----- libblkid.so.1.1.0 00007ff0a6196000 12K r---- libblkid.so.1.1.0 00007ff0a6199000 4K rw--- libblkid.so.1.1.0
另一种实现方式:# cat /proc/PID/maps 以下:
[root@centos7 ~]# cat /proc/1/maps 7ff0a5d59000-7ff0a5d5d000 r-xp 00000000 08:03 33782768 /usr/lib64/libuuid.so.1.3.0 7ff0a5d5d000-7ff0a5f5c000 ---p 00004000 08:03 33782768 /usr/lib64/libuuid.so.1.3.0 7ff0a5f5c000-7ff0a5f5d000 r--p 00003000 08:03 33782768 /usr/lib64/libuuid.so.1.3.0 7ff0a5f5d000-7ff0a5f5e000 rw-p 00004000 08:03 33782768 /usr/lib64/libuuid.so.1.3.0 7ff0a5f5e000-7ff0a5f96000 r-xp 00000000 08:03 34593175 /usr/li
1.glances命令;
★介绍:
glances是一款用于Linux、BSD的开源命令行系统监控工具。可以监视CPU、负载、内存、磁盘I/O、网络流量、文件系统、系统温度等信息。
☉选项:
-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:要连入的服务器端地址
演示:
2.dstat命令;
★dsate命令:系统监控工具(很重要)
dstat是一个能够取代vmstat、iostat、netstat和ifstat这些命令的多功能产品。dastat能够很方便的监控系统运行情况并用于基准测试和排除故障。
☉用法:
dstat [-afv] [options..] [delay [count]]
☉选项:
使用参考
演示:
以上都是一些进程的查看、进程资源的获取等命令,接下来是进程的管理,所谓进程的管理就是向进程发送一些控制信号,来完成对进程的管理控制。
1.kill命令;
★做用:
显示当前系统的信号,以及向进程发送信号指令,以实现对进程的管理。
☉用法1:
kill -l [signal] (显示当前系统可用信号(或者使用man 7 signal))
☉每一个信号有三种表示方式:
信号的数字标识;如 1
信号的完整名称;如 SIGHUB
信号的简写名称;如 HUB
☉用法2:
kill [-s signal|-SINGAL] pid... :向进程发送信号
☉经常使用的信号:
SIGHUP,1:无须从新启动进程而让其重读配置文件,并生效;
SIGINT,2:打断正在运行的进程;至关于Ctrl+c;
SIGKILL,9:强行终止(杀死)正在运行的进程;
SIGTERM,15:安全终止正在运行的进程;
SIGCONT,18:继续运行指定的进程;
SIGSTOP,19:暂停进程;
演示:
[root@centos7 ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX [root@centos7 ~]# kill -l 1 HUP
2.向进程发送信号:
[root@CentOS6 ~]# ps aux |grep httpd root 7654 0.0 0.3 186052 3920 ? Ss 06:02 0:00 /usr/sbin/httpd apache 7658 0.0 0.2 186052 2516 ? S 06:02 0:00 /usr/sbin/httpd apache 7659 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7660 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7661 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7662 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7663 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7664 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd root 7697 0.0 0.0 103316 844 pts/0 S+ 06:06 0:00 grep --color=auto httpd # 发送信号 [root@CentOS6 ~]# kill -s 15 7660 [root@CentOS6 ~]# ps aux |grep httpd root 7654 0.0 0.3 186052 3920 ? Ss 06:02 0:00 /usr/sbin/httpd apache 7658 0.0 0.2 186052 2516 ? S 06:02 0:00 /usr/sbin/httpd apache 7659 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7661 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7662 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7663 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd apache 7664 0.0 0.2 186052 2500 ? S 06:02 0:00 /usr/sbin/httpd root 7700 0.0 0.0 103316 848 pts/0 S+ 06:06 0:00 grep --color=auto httpd
1.killall命令;
★做用:
杀死指定进程的全部进程
☉用法:
killall [-SIGNAL] program
演示:
[root@CentOS6 ~]# killall httpd [root@CentOS6 ~]# ps aux |grep httpd root 7759 0.0 0.0 103316 848 pts/0 S+ 06:30 0:00 grep --color=auto httpd
1.Linux做业控制;
★job
☉前台做业(foreground):
经过终端启动,且启动后一直占据终端;
☉后台做业(background):
可经过终端启动,但启动后即转入后台运行(释放终端)
★如何让做业运行于后台?
☉运行中的做业:
Ctrl+z
注意:
送日后台后,做业会转为中止态;
☉还没有启动的做业:
~]# COMMAND &
注意:
此类做业虽然被送日后台运行,但其依然与终端相关;退出终端,将关闭后台做业。 若是但愿送日后台后,剥离与终端的关系:
~]# nohup COMMAND &
★查看全部做业:
~]# jobs
★做业控制
# fg [[%]JOB_NUM]:把指定的后台做业(做业号)调回前台;
# bg [[%]JOB_NUM]:让送日后台的做业在后台继续运行;
# kill [%JOB_NUM]:终止指定的做业;(百分号和做业号是不能够省略的)
演示:
# 运行中的进程按 Ctrl+z 送日后台 [root@CentOS6 ~]# ping www.baidu.com PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data. 64 bytes from 61.135.169.125: icmp_seq=1 ttl=56 time=3.73 ms 64 bytes from 61.135.169.125: icmp_seq=2 ttl=56 time=4.46 ms 64 bytes from 61.135.169.125: icmp_seq=3 ttl=56 time=5.96 ms ^Z [1]+ Stopped ping www.baidu.com [root@CentOS6 ~]# htop [2]+ Stopped htop # 查看后台做业,其中带加号的优先级最高,“-”其次 [root@CentOS6 ~]# jobs [1]- Stopped ping www.baidu.com [2]+ Stopped htop # fg 调回前台,不指明做业号,默认调回有 + 的做业 [root@CentOS6 ~]# fg ping www.baidu.com 64 bytes from 61.135.169.121: icmp_seq=5 ttl=56 time=3.84 ms 64 bytes from 61.135.169.121: icmp_seq=6 ttl=56 time=4.23 ms [root@CentOS6 ~]# kill %1 [1]- Stopped ping 10.1.252.161 [root@CentOS6 ~]# jobs [1]- Terminated # 已终止 ping 10.1.252.161 [2]+ Stopped htop [root@CentOS6 ~]# jobs [2]+ Stopped htop
2.进程优先级及调整进程nice值的方法;
★进程优先级
可经过nice值调整的优先级范围:100-139;
nice值分别对应于:-20,19;
进程启动时默认的nice值为0,优先级为120;
只有根用户才能下降nice值(提升优先性);
★调整进程nice值的方法:
☉对于还没有启动的进程 (仅管理员可调低nice值)
# nice -n N COMMAND :N表示nice值,范围 -20~19;
☉对于已经启动并处于运行中进程的nice值
# renice [-n] N PID
☉查看nice值和优先级
# ps axo pid,comm,ni,priority
演示:
[root@CentOS6 ~]# nice -n -5 htop [root@CentOS6 ~]# ps axo pid,comm,ni,priority |grep htop 8275 htop -5 15 [root@CentOS6 ~]# renice -n -3 8275 8275: old priority -5, new priority -3 [root@CentOS6 ~]# ps axo pid,comm,ni,priority |grep htop 8275 htop -3 17