进程及做业管理(二)

概述: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命令就能够实现这一功能。

wKioL1i03NuAKfrLAACNC3Ygaq0551.png


命令及选项:

排序命令:

  • P:以占据cpu百分比排序;

  • M:以占据内存百分比排序;

  • T:累计占用cpu时间排序

首部信息命令:

  • uptime信息:l 命令 是否显示;

  • tasks及cpu:t 命令 是否显示;

  • 内存信息:  m 命令 是否显示;

相关操做命令:

  • 退出命令:    q

  • 刷新时间间隔:s

  • 终止指定进程:k

选项:

  • -d #:指定刷新时间间隔,默认为3妙;

  • -n #:批次方式显示,显示多少批次;

  • -b :batch,以批次显示;

每一行表明的含义以下:

第一行:uptime 信息

  1. 系统当前的时间,即:22:29:39

  2. 系统启动到如今所通过的时间,即:up 14:02

  3. 当前已登陆系统的用户数,即:2 users

  4. 系统在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命令便可,

 以下:

wKiom1fTfs-xCEpEAAEhHLXQP_k680.png

帮助以下:

wKiom1fThXfAcxccAACKdfToWiU616.png

内存工具

做用:

  • 动态显示系统资源的使用状况,这些资源包括:内存、磁盘、网络、cpu等资源

 1.vmstat命令

vmstat命令:虚拟内存信息

用法:

  • vmstat[options] [delay [count]]

每一行所表明的含义:

wKiom1i1A2-x2tWrAAC7dRh9q9s561.png


选项:

  • -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:要连入的服务器端地址

演示:

wKiom1fTuYSDYq6xAADlAuYhLYc183.png帮助信息以下:

wKioL1fTue2zcpnOAACDJaeZzus929.png


2.dstat命令

dsate命令:系统监控工具(很重要)

  • dstat是一个能够取代vmstat、iostat、netstat和ifstat这些命令的多功能产品。dastat能够很方便的监控系统运行情况并用于基准测试和排除故障。

用法:

  • dstat [-afv] [options..] [delay [count]]

选项:

wKiom1i1CgKy1DoWAABCmGQ9rEo195.png


使用参考

演示:

wKioL1fTw_yAwcMGAACmLLSr1QE482.png

 



  以上都是一些进程的查看、进程资源的获取等命令,接下来是进程的管理,所谓进程的管理就是向进程发送一些控制信号,来完成对进程的管理控制。

进程管理工具

 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

做业管理(job contral)

 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
相关文章
相关标签/搜索