|
Linux常用进程管理命令总结 1.进程的存放目录 #此目录为存放进程信息的目录,与当前进程PID一一对应 [iyunv@kvm ~]# ls /proc/ [iyunv@kvm 1]# pwd /proc/1 可以看到当前进程执行的命令是什么,如下 [iyunv@kvm 1]# cat cmdline /sbin/init
2.ps命令 [iyunv@ kvm 1]# ps -aux Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.7/FAQ USER PID %CPU%MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 2072 628 ? Ss 07:23 0:01 init [3] --------------------------------略-----
如上可以看到有关进程一系列参数,参数解释: S:睡眠(可中断的睡眠) s:会话的生成者,父进程 S<:高优先级进程 SN:低优先级进程 R:运行中或者准备就绪的状态 Ssl:表示多线程的进程 Ss+:前台进程组 D:睡眠状态(不可中断的睡眠,与S相反) T:停止状态的进程 Z:僵尸进程 一个进程如果出现大量的僵死状态的进程 说明软件有BUG需要注意
%CPU:当前进程所占用的CPU时间:当前实际占用的时间 %MEM:内存的比例,RSS与整个内存空间的比率(RSS:MEM) RSS:实际内存集,此进程真正占用的物理内存空间大小,因此物理内存的某些数据被交换到swap, 它将不再属于RSS,所以需要看VSZ的数值 VSZ:虚拟内存所占据的大小 START:进程的启动时间 COMMAND:由哪个命令启动起来的
如果想查看某进程的子进程以及相关信息可以使用命令: ps –axjf 如下所示: [iyunv@svn ~]# ps -axjf 1 2137 2137 2137 ? -1 Ss 0 0:00 /usr/sbin/atd 1 2146 2145 2145 ? -1 Sl 99 10:03 /usr/local/sbin/pdnsd -d 1 2169 2169 2169 tty1 2169 Ss+ 0 0:00 /sbin/mingetty tty1 1 2170 2170 2170 tty2 2170 Ss+ 0 0:00 /sbin/mingetty tty2 1 2171 2171 2171 tty3 2171 Ss+ 0 0:00 /sbin/mingetty tty3 1 2172 2172 2172 tty4 2172 Ss+ 0 0:00 /sbin/mingetty tty4 1 2173 2173 2173 tty5 2173 Ss+ 0 0:00 /sbin/mingetty tty5 1 2174 2174 2174 tty6 2174 Ss+ 0 0:00 /sbin/mingetty tty6 1 2318 2318 2318 ? -1 Ss 0 0:00 /usr/local/squid-3.2.6/sbin/squid -s 2318 2320 2318 2318 ? -1 Sl 99 478:55 \_ (squid-1) -s 这样可以看到 子进程与父进程等对应关系都可以一一列出显示
3.top命令 Linux的top命令类似于windows的任务管理器,都是以动态方式实时查看进程的状态,如下所示: [iyunv@svn ~]#top top - 14:53:30 up 44 days, 19:09, 2 users, load average: 0.02, 0.16, 0.17 Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3985168ktotal, 3960592k used, 24576k free, 330408k buffers Swap: 4192956ktotal, 9360k used, 4183596k free, 1363684k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2320 nobody 15 0 1915m 1.8g 5352 S 0.3 47.1478:57.02 squid 1 root 15 0 10368 604 556 S 0.0 0.0 0:01.64 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.08 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 下面来一一解释相关参数 top - 14:53:30 up 44 days, 19:09, 2 users, load average: 0.02, 0.16, 0.17 #up 44 days :启动时长 #load average:平均负载,指CPU队列当中等待执行的进程个数的平均值,(CPU可能只有一颗,在某时刻运行的进程可能有多个, 如果有多个进程都需要运行的话需要等待)0.02,0.16, 0.17 分别表示当前1分钟的负载值、5分钟负载值、15分钟负载值,值越少表示当前进程等待处理的时间越短或CPU性能越好,总之,值越小越优,当单颗cpu的平均值超过3的时候,意味着CPU的瓶颈太高
Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie #汇总信息
Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st #0.1%us:用户占用空间 #0.0%sy:系统(内核)占用率 #0.0%ni:调整nice优先级之后的进程占用率 #99.9%id:CPU空闲比例 #0.0%wa:等待IO(磁盘加载数据)完成的的占用率 #0.0%hi: #0.0%si: #0.0%st:虚拟机占用的时间比例 Mem: 3985168ktotal, 3960592k used, 24576k free, 330408k buffers #MEM:内存信息 #3985168k total : 物理内存总大小 # 3960592k used:使用了多少 #24576k free:剩余了多少 #330408k buffers :有多少用于缓冲
Swap: 4192956ktotal, 9360k used, 4183596k free, 1363684k cached #1363684k cached:有多少是缓存,缓存信息是mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2320 nobody 15 0 1915m 1.8g 5352 S 0.3 47.1478:57.02 squid 1 root 15 0 10368 604 556 S 0.0 0.0 0:01.64 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.08 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 #RP:代表实时优先级 #NI: nice值 #VIRT:虚拟内存集 #RES: 真正占据物理空间 #SHR:与其他进程共享的内存空间大小 #S:状态 #%CPU:占用的CPU #%MEM:占用的内存 #TIME+:占据CPU时间的累积时间长
4.调整进程nice值 Linux进程的nice数值范围: 从负20 – 19 (-20 -- 19),nice值越小优先级越高 查看nice值: [iyunv@svn ~]# top ----------中间略------------- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 10368 604 556 S 0.0 0.0 0:01.64 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.08 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 其中,NI为nice值,上面有提到过,不做过多解释 下面来更改进程httpd的nice值:
(1)查看进程号: [iyunv@mode ~]# ps -ef | grep http root 3332 1 008:02 ? 00:00:00 /usr/sbin/httpd apache 3334 3332 008:02 ? 00:00:00 /usr/sbin/httpd apache 3335 3332 008:02 ? 00:00:00 /usr/sbin/httpd (2)记录进程号对其更改nice值: [iyunv@mode ~]# renice -1 3332 3332: old priority 0, new priority -1 可以看到 old prioity是之前的nice值,为0 ,newpriority 为当前修改后的nice值 为-1
|