Linux进程管理

简介:

一、top:查看操作系统负载情况。

1、执行top命令的结果如下:

top - 21:57:41 (当前系统时间) up 3 min(运行时长),  1 user(登录用户数),  

load average: 0.05, 0.09, 0.04(平均负载 过去1分钟,5分钟,15分钟)


Tasks:  85 total(总进程数),   1 running(运行进程数),  84 sleeping(休眠进程数),         0 stopped(停止进程数),   0 zombie(僵死进程数)

Cpu(s):   0.3%us(用户空间占用CPU百分比),  0.1%sy(内核空间占用CPU百分比),                0.0%ni,100.0%id(空闲百分比),  0.0%wa(等待IO异常所占百分比),  

       0.0%hi(硬件终端所占百分比),  0.0%si(软件终端所占百分比),  

       0.0%st(被偷走--虚拟化 所占百分比)

Mem:     1012548k total(总内存空间),   204432k used(使用内存空间),   

       808116k free(空闲内存),    37768k buffers

Swap:    2031608k total(交换分区空间),        

       0k used,  2031608k free,    

       60848k cached

2、top命令的一些重要参数:


  M:按内存占用百分比大小排序。

  P:按CPU占用百分比大小排序,默认。

  T:按累计占用CPU时长大小排序。


  s:改变top刷新时间间隔。

  k:kill,终止一个进程。

  q:退出。


二、vmstat:查看系统负载情况。

1、procs:进程队列。

r:运行或等待CPU时间片的进程的个数

b:被阻塞(通常为等待IO完成)的进程队列的长度。

2、memory:内存。

swpd:从物理内存交换到swap中的数据量;0是最好的,说明基本内存够用,无需swap。

free:未使用内存大小。

buffer:buffer空间大小,通常与缓存写操作相关。

cache:cache空间大小,通常与缓存读操作相关。

3、swap:与交换分区相关。

si:swap in,数据进入swap中的数据量。通常是速率,kb/s

so:swap out,数据离开swap中的数据量。通常是速率,kb/s

        io:与磁盘IO相关。

bi:block in,从块设备读入内存的数据量。通常是速率,kb/s

bo:block out,保存至设备中的数据量。通常是速率,kb/s

4、system:与系统相关。

in:interupter,中断发生速率, 每秒的中断数。

cs:context switch,上下文切换速率,进程切换速率,通常为每秒切换的次数。

5、cpu相关:

us:用户空间的比例。

sy:内核空间比例。

id:空闲比例。

wa:等待IO比例。

st:被偷走的比例,虚拟化引起的。

6、vmstat的使用格式:

vmstat [delay] [count] 

delay:延迟几秒刷新。

count:显示次数。

-s:显示内存统计数据。


三、dstat:显示系统各式各样的信息。

可以man下看看具体显示那些信息。


四、查看进程的命令:


1、pstree:查看进程树。


2、ps(process state ):显示系统当前进程状态。

A、选项组合:

a、aux:

   a:显示所有跟终端相关的进程。tty有值说明进程跟终端相关

   x:显示所有跟终端无关的进程。tty为?说明进程跟终端无关

   u(user):表示以用户为中心显示进程相关信息。


b、-ef:

 -e:显示所有进程,相当于ax

 -f:完整格式列表

 -o:自定义格式显示进程信息。

   如 ps -axo ni,pid,command 显示ni(nice) pid command 三项进程信息。

B、执行命令后的结果说明:


a、结果的STAT:

   S:可中断睡眠

   D:不可中断睡眠

   R:运行或可运行

   T:停止

   Z:僵死

   s:session leader

   l:所线程进程

   +:前台进程

   N:低优先级进程

   <:高优先级进程

b、结果的TIME:运行时长。


c、结果的COMMAND:有那个命令发起的进程,有[]的为内核线程。


3、pgrep(process grep):显示符合条件的进程。


pgrep -U USERNAME :显示相关用户的进程。


pgrep -G GROUPNAME :显示相关组的进程。


五、nice、renice:

1、调整进程nice值:用来手动调整进程优先级。

2、有效的nice值:-20到19,对应的优先级为100到139;默认nice值0,即默认优先级为120

3、nice:对于普通用户只能调大此值;对于管理员可以从-20到19。

4、通过nice、renice调整nice值:

A、对于尚未启动的程序,可以如下调整nice:

nice -n # COMMAND

如#nice -n -5 /bin/bash(注意只有管理员才可使用-5,因默认为0,现在为-5调小了)

B、对于运行中的进程,可以如下调整nice:

renice # PID

如 renice -6 36016


六、进程间通信:

1、kill命令:用于是实现向其他进程发送信号。

2、kill -l 显示常用信号。

执行#kill -l后的结果如下:

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1

11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM

16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

....

常用信号解释:

1) SIGHUP:让程序重读配置文件,而不需要重启程序。

2) SIGINT:中断信号,ctrl+c即发送此信号。

9) SIGKILL:杀死进程。

15) SIGTERM:终止进程,这种终止方式比较优雅,要等进程完成任务后在杀死。

19) SIGSTOP:停止进程,ctrl+z即发送此信号,此进程处于停止状态。

18) SIGCONT:被停止的进程,调制前台,叫此进程继续运行。


3、kill 发送信号的格式:

#kill -SIGNAL pid:对单个进程发送信号。

-SIGNAL:

信号代号,如1,9等。

信号名称,如SIGHUP,SIGKILL等。

        简写名称:如HUP,KILL等。


如#kill -9 pid=kill -SIGKILL pid

  #kill -1 pid=kill -SIGHUP  pid


4、#killall -SIGNAL COMMAND:对名称为command的所有进程发送信号。


如#killall -9 httpd

如#killall -9 java


七、Linux作业控制:


1、前台作业:一直占用一个终端。

2、后台作业:作业执行时不占用终端,作业启动后就释放终端。

3、非守护进程类的程序,启动后都在前台工作。

 A、如果已经启动:前台-->后台,Ctrl+z把前台作业送往后台,作业被“停止”

 B、如果尚未启动的作业:前台-->后台,可以只用COMMAND &

   退出当前会话(终端),作业也会终止;因为非守护进程类的作业与当前终端相关。

 C、如果把作业送往后台后,不期望作业随终端结束而终止,使用#nohup command &

 D、如果让送往后台的作业继续执行:

#fg [%]job_num:将作业调回前台继续运行

#bg [%]job_num:让作业在后台继续运行

 E、查看作业号: #jobs

 F、终止作业:#kill %job_num


八、pmap:显示某一个进程内存使用情况。


使用格式:pmap pid 

如:#pmap 2213,进程2213使用内存的情况。










本文转自lzf0530377451CTO博客,原文链接: http://blog.51cto.com/8757576/1574391,如需转载请自行联系原作者










相关文章
|
1月前
|
Shell Linux 调度
【Shell 命令集合 系统管理 】Linux 调整进程优先级 renice命令 使用指南
【Shell 命令集合 系统管理 】Linux 调整进程优先级 renice命令 使用指南
41 0
|
29天前
|
消息中间件 Linux 调度
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
67 0
|
6天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
7天前
|
监控 Linux
linux监控指定进程
请注意,以上步骤提供了一种基本的方式来监控指定进程。根据你的需求,你可以选择使用不同的工具和参数来获取更详细的进程信息。
14 0
|
8天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
100 2
|
11天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
19 3
|
15天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
15天前
|
监控 Linux Shell
初识Linux下进程2
初识Linux下进程2
|
16天前
|
Linux 编译器 Windows
【Linux】10. 进程地址空间
【Linux】10. 进程地址空间
19 4
|
20天前
|
算法 Linux Shell
linux系统的进程管理
linux系统的进程管理
19 2