系统进程监控
Unix能够监控进程执行,并且能够有限的制定执行优先级。这样做,可以控制CPU时间分配并间接控制内存的使用。 1、uptime命令: uptime 3:24pm up 2 days, 2:41,16 users,load average:1.90,1.43,1.33 Uptime命令将会报告当前时间、系统运行时间以及三个负荷均值,负荷均值是对CPU使用量的粗略度量。这三个均值分别报告了最后1分钟、最后5分钟、最后15分钟的平均活动进程数,均值较高通常意味着系统比较繁忙。多大均值算高呢?通常取决于具体的系统。理想的负载负荷应该在3-5以下。更进一步,相同的负荷均值,对于不同的系统运行也不一样。例如有些工作站运行X窗口时占用单个CPU的后台作业,也会使相应时间变慢,虽然此时系统的平均负荷依然比较低。因此CPU的可用性只是影响系统性能的一个因素,所以低负荷均值并不能保证快速的响应时间。 2、PS命令与TOP命令: Ps命令可以提供一个完整的系统活动状况,该命令的控制选项可以列出需要现实的进程的详细信息。 在基于BSD的系统中可以使用ps aux形式命令来获得所有进程列表,该列表按照使用CPU的百分比大小进行排序。在基于System V(如:IBM-AIX系列以及HP-UNIX系列)的系统中该列表按照进程的PID进行排序。具体的PS命令输出如下: User(BSD) 进程所有者用户名 UID(System V) PID 进程ID %CPU 估计的CPU消耗百分比 %MEM 估计的系统内存消耗百分比 SZ 使用的虚拟内存 RSS 使用的物理内存 TT,TTY 和进程关联的TTY STAT(BSD) 当前进程状态,下力值中的一个: S(System V) R 正在运行的进程 S 休眠 I 空闲 T 停止 Z 死进程 D 等待磁盘 X(System V) 增长,等待内存 K(AIX) 可用内存进程 W(BSD) 被换出 N(BSD) 执行nice命令降低了优先级 < (BSD) 执行了nice命令人工提升了优先级 TIME 使用的总CPU时间 COMMAND 进程执行的命令 STIME(System V) 进程开始的时间或日期 START (BSD) F 进程标志 PPID 父进程的ID NI 进程优先级 C (System V) CPU使用因子,调度程序靠它来计算执行优先级 CP(BSD) PRI 实际的进程优先级(动态地重新计算) WCHAN 指定进程所等待的事件 TOP命令会显示系统运行时间、总的进程数和当前的CPU、内存、交换空间的使用量,并且会按照CPU的使用量进行排序。默认情况下TOP命令每5秒钟进行一次刷新,可以使用如下命令来指定刷新时间: FreeBSD top –s 8 Linux top d8 HP-UNIX top –s 8 TOP会持续的运行直到用户按下q键。大多数版本的TOP还允许和显示的进程进行交互(HP-UNIX的TOP的命令只用于显示),当按下k和r键分别可以结束进程以及重新指定进程优先级。对于这两种情况TOP命令都将会提示输入需要进行改变的进程PID。 3、/Proc文件系统: 大多数Unix系统(HP-UNIX)除外和所有的Linux系统都支持/proc文件系统,在大多数系统上,/proc文件系统完全由编号的文件或者子目录组成,他们都以对应的进程PID命名。Linux对/proc文件系统进行了扩展,包含了许多保存系统设置和当前系统数据的其他文件和子目录。例如cpuinfo文件包含了处理器信息,使用cat /proc/cpuinfo命令可以查看当前系统的处理器信息。 此外/proc下还包含许多子目录,这些子目录中也包含了大量有关系统的重要信息。比如sys子目录下提供了对内和变量的访问,可以修改其中的一些文件,来更改内和变量的默认值。但是此操作一定要相当谨慎。 4、进程资源限制: Unix提供了非常简单的进程资源限制命令。资源限制分为两种类型:软限制和硬限制。软限制是创建新进程时默认应用的资源限制。用户可以增加该值,最大为系统的硬限制,再往上只能由超级用户来增加。硬限制是资源使用的绝对最大值。 以bash shell为例可以使用ulimited –a来显示当前系统资源的软限制,使用ulimited –Ha来显示当前系统的硬限制。可以使用如下命令设置各种资源限制: ulimit –t 单位:秒 CPU使用时间 ulimit –f 单位:kb 最大文件尺寸 ulimit –d 单位:kb 最大进程数据段 ulimit –s 单位:kb 最大进程堆栈段 ulimit –m 单位:kb 最大物理内存 ulimit –c 单位:kb 最大核心文件尺寸 ulimit –u 单位:n 最大进程数 ulimit –v 单位:kb 最大虚拟内存 命令事例:ulimit –t unlimited 设置CPU使用时间为无限 ulimit –m 65536 设置最大物理内存使用量为64MB 通常将不经常使用核心文件的普通用户的核心文件大小限制设置为0,比较可取,因为这样可以防止这些用户创建该文件。 在AIX中可以通过修改文件/etc/security/limits文件,来更改进程资源限制。或者可以通过chuser命令来改变用户的进程资源限制。如:chuser rss=10240 wangcai,将wangcai用户的最大物理内存使用量置为10M。(具体资源限制参数可以去查看联机帮助手册)。 5、结束进程: 在Unix或者Linux系统中可以使用kill命令来结束一个进程,改命令以进程PID为参数。如果使用该命令无法结束一个进程,可以使用kill -9 PID命令来强行结束一个进程。一般情况下这肯定能够销毁一个进程,但是该命令不能使进程在退出前进行必要的清理工作,因此可能使进程处理的文件处于不协调的状态。另外对挂起的进程必须首先恢复,然后才能使用kill命令来结束。 大多数系统还提供了killall命令来一次结束多个进程。对于Linux和FreeBSD系统还提供了killall的增强版本,使该命令可以接受第二个参数,如:killall –kill find该命令可以结束所有正在运行find命令的进程。