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使用内存的情况。


你可能感兴趣的:(memory,百分比)