设为首页 收藏本站
查看: 588|回复: 0

[经验分享] CentOS进程管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-30 08:59:13 | 显示全部楼层 |阅读模式
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目录下的各文件中
wKiom1YKWUnBy1zLAAM2yODunIY113.jpg

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: 显示进程树

wKiom1YKWj3B3QasAAgUBYNSE2E243.jpg

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

wKioL1YKWpDT3r1AAAYbuMGeN-g363.jpg

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次
wKiom1YKWrmyxNwhAAFg9BjRn2k566.jpg

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]:终止指定的作业,必须带%;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-120705-1-1.html 上篇帖子: linux hosts.allow 只允许adsl动态ip登录 下篇帖子: ssh连接报错The authenticity of host '192.168.203.137 (192.168.203.137)' can't be est
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表