linux系统维护命令

花门楼前见秋草,岂能贫贱相看老。这篇文章主要讲述linux系统维护命令相关的知识,希望能为你提供帮助。

工具

功能描述

uptime

系统平均负载率

dmesg

硬件/系统信息

top

进程进行状态

iostat

CPU和磁盘平均使用率

vmstat

系统运行状态

sar

实时收集系统使用状态

KDE System Guard

图形监控工具

free

内存使用率

w

查出谁登录系统和他们正在做什么

ps 和 kill

显示和杀死进程

netstat 和 ss

网络统计

iptraf

网络实时统计

tcpdump

网络流量详细信息分析

/Proc 文件系统 cat

多种内核信息的统计和查看

iftop

流量监控

traffic-vis

网络监控(只有SUSE有)

date 和 clock

修改和查看系统的时间

pmap

进程内存占用率

strace

追踪程序运行状态

ulimit

系统资源使用限制

mpstat

多处理器使用率

1、uptime
uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况。
uptime的输出包含一项内容是load average,显示了最近1,5,15分钟的负荷情况。它的值代表等待CPU处理的进程数,如果CPU没有时间处理这些进程,load average值会升高;反之则会降低。
load average的最佳值是1,说明每个进程都可以马上处理并且没有CPU cycles被丢失。对于单CPU的机器,1或者2是可以接受的值;对于多路CPU的机器,load average值可能在8到10之间。
也可以使用uptime命令来判断网络性能。例如,某个网络应用性能很低,通过运行uptime查看服务器的负荷是否很高,如果不是,那么问题应该是网络方面造成的。
以下是uptime的运行实例:
9:24am   up   19:06,   1 user,   load average: 0.00, 0.00, 0.00
也可以查看/proc/loadavg和/proc/uptime两个文件,注意不能编辑/proc中的文件,要用cat等命令来查看,如:
liyawei:~ # cat /proc/loadavg
0.00 0.00 0.00 1/55 5505
 
2、dmesg
dmesg命令主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。
另外,使用dmesg可以确定您的服务器安装了那些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg命令可以查看该记录。
dmesg输入实例:
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
Adding 1044184k swap on /dev/hda5.   Priority:-1 extents:1 across:1044184k
parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
 
3、top
top命令显示处理器的活动状况。缺省情况下,显示占用CPU最多的任务,并且每隔5秒钟做一次刷新。
第一部分 -- 最上部的 系统信息栏 :
第一行(top):
“00:11:04”为系统当前时刻;
“3:35”为系统启动后到现在的运作时间;
“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“59 total”为当前系统进程总数;
“1 running”为当前运行中的进程数;
“58 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为被复原的进程数;
第三行(Cpus):
分别表示了 CPU 当前的使用率;
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
第二部分 -- 中间部分的内部命令提示栏:
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s - 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示(字母l)
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表
P - 以 CPU 占用率大小的顺序排列进程列表
M - 以内存占用率大小的顺序排列进程列表
    1 - 分别列出多核cpu的情况(数字1)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
s - 改变画面更新周期
第三部分 -- 最下部分的进程列表栏:
以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式。
4、iostat
iostat由Red Hat Enterprise Linux AS发布。同时iostat也是Sysstat的一部分,可以下载到,网址是http://perso.wanadoo.fr/sebastien.godard/
执行iostat命令可以从系统启动之后的CPU平均时间,类似于uptime。除此之外,iostat还对创建一个服务器磁盘子系统的活动报告。该报告包含两部分:CPU使用情况和磁盘使用情况。
iostat显示实例:
avg-cpu:   %user   %nice %system %iowait   %steal   %idle
0.16     0.01     0.03     0.10     0.00   99.71
Device:             tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hda               0.31         4.65         4.12     327796     290832
 
CPU占用情况包括四块内容
%user:显示user level (applications)时,CPU的占用情况。
%nice:显示user level在nice priority时,CPU的占用情况。
%sys:显示system level (kernel)时,CPU的占用情况。
%idle: 显示CPU空闲时间所占比例。
磁盘使用报告分成以下几个部分:
Device: 块设备的名字
tps: 该设备每秒I/O传输的次数。多个I/O请求可以组合为一个,每个I/O请求传输的字节数不同,因此可以将多个I/O请求合并为一个。
Blk_read/s, Blk_wrtn/s: 表示从该设备每秒读写的数据块数量。块的大小可以不同,如1024, 2048 或 4048字节,这取决于partition的大小。
例如,执行下列命令获得设备/dev/sda1 的数据块大小:
dumpe2fs -h /dev/sda1 |grep -F "Block size"
输出结果如下
dumpe2fs 1.34 (25-Jul-2003)
Block size: 1024
Blk_read, Blk_wrtn: 指示自从系统启动之后数据块读/写的合计数。
也可以查看这几个文件/proc/stat,/proc/partitions,/proc/diskstats的内容。
 
5、vmstat
vmstat提供了processes, memory, paging, block I/O, traps和CPU的活动状况
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r   b   swpd   free   buff   cache   si   so     bi     bo   in   cs us sy id wa st
0   0       0 513072   52324 162404     0     0     0     28   275   51   0   0 97   3   0
0   0       0 513072   52324 162404     0     0     0     0   255   21   0   0 100   0   0
各输出列的含义:
Process
– r: The number of processes waiting for runtime.
– b: The number of processes in uninterruptable sleep.
Memory
– swpd: The amount of virtual memory used (KB).
– free: The amount of idle memory (KB).
– buff: The amount of memory used as buffers (KB).
Swap
– si: Amount of memory swapped from the disk (KBps).
– so: Amount of memory swapped to the disk (KBps).
IO
– bi: Blocks sent to a block device (blocks/s).
– bo: Blocks received from a block device (blocks/s).
System
– in: The number of interrupts per second, including the clock.
– cs: The number of context switches per second.
CPU (these are percentages of total CPU time)
- us: Time spent running non-kernel code (user time, including nice time).
– sy: Time spent running kernel code (system time).
– id: Time spent idle. Prior to Linux 2.5.41, this included IO-wait time.
– wa: Time spent waiting for IO. Prior to Linux 2.5.41, this appeared as zero.
 
6、sar
sar是Red Hat Enterprise Linux AS发行的一个工具,同时也是Sysstat工具集的命令之一,可以从以下网址下载:http://perso.wanadoo.fr/sebastien.godard/
sar用于收集、报告或者保存系统活动信息。sar由三个应用组成:sar显示数据、sar1和sar2用于收集和保存数据。
使用sar1和sar2,系统能够配置成自动抓取信息和日志,以备分析使用。配置举例:在/etc/crontab中添加如下几行内容
同样的,你也可以在命令行方式下使用sar运行实时报告。如图所示:
从收集的信息中,可以得到详细的CPU使用情况(%user, %nice, %system, %idle)、内存页面调度、网络I/O、进程活动、块设备活动、以及interrupts/second
#sar -u 3 10
Linux 2.6.16.21-0.8-default (liyawei)   05/31/07
10:17:16           CPU     %user     %nice   %system   %iowait     %idle
10:17:31           all       0.00       0.00       0.00       0.00     100.00
10:17:34           all       0.00       0.00       0.00       0.00     100.00
查看网络计数器,输入:#sar -n DEV | more
从第24显示网络计数器:#sar -n DEV -f /var/log/sa/sa24 | more
你也能使用sar查看实时使用:#sar 4 5
输出示例:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009
06:45:12 PM       CPU     %user     %nice   %system   %iowait     %steal     %idle
06:45:32 PM       all       3.53       0.00       0.25       0.03       0.00     96.19
Average:           all       2.02       0.00       0.27       0.01       0.00     97.70
7、KDE System Guard
KDE System Guard (KSysguard) 是KDE图形方式的任务管理和性能监视工具。监视本地及远程客户端/服务器架构体系的中的主机。
 
8、free
/bin/free命令显示所有空闲的和使用的内存数量,包括swap。同时也包含内核使用的缓存。
total       used       free     shared     buffers     cached
Mem:         776492     263480     513012           0       52332     162504
-/+ buffers/cache:       48644     727848
Swap:       1044184           0     1044184
 
9、w
w命令显示关于目前联机的用户,和他们进程
 
10、ps 和 kill
ps命令显示当前进程的快照。使用-A和-e选项选择所有进程:
#ps -A   显示长格式输出
#ps -AI 打开另外完整模式(它会显示命令行传递给进程参数)
#ps -AIF 参看线程(LWP和NLWP)
#ps -AIFH 查看进程中的线程
#ps -AILm 打印服务器上的所有进程
#ps ax
#ps axu
打印A进程树
#ps -ejH
#ps axjf
#pstree
打印安全信息
#ps -eo euser,ruser,suser,fuse,f,comm,label
#ps axZ
#ps -eM
查看用户ViveK运行的进程
#ps -U vivek -u vivek u
设置以用户定义的格式输出
#ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
#ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
#ps -eopid,tt,user,fname,tmout,f,wchan
只显示Lighttpd的进程号
#ps -C lighttpd -o pid=

#pgrep lighttpd

#pgrep -u vivek php-cgi
显示进程号为55977的名称
#ps -p 55977 -o comm=
查找最耗内存的10个进程
#ps -auxf | sort -nr -k 4 | head -10
查找最耗CPU的10个进程
#ps -auxf | sort -nr -k 3 | head -10
 
kill 用来杀死进程
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。   首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:
 
# kill 进程号
  注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。
如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
 
确定要杀死进程的PID或PPID
 
# ps -ef | grep httpd
 
以优雅的方式结束进程
 
# kill -l PID
 
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。
 
TERM信号
 
给父进程发送一个TERM信号,试图杀死它和它的子进程。
 
# kill -TERM PPID
 
killall命令
 
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
 
# killall httpd
 
停止和重启进程
 
有时候只想简单的停止和重启进程。如下:
 
# kill -HUP PID
 
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
 
绝杀 kill -9 PID
 
同样的 kill -s SIGKILL
这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
 
11、nestat和ss—网络统计
netstat命令显示连接数,路由表,接口统计,伪连接,和组播成员。
ss命令用于套接字统计。显示的信息与netstat相类似。
ss:显示Linux TCP/UDP网络和套接字信息
使用netstat命令获取关于特殊IP地址的详细信息
12、iptraf—网络实时统计
iptraf命令是交互式的多彩的IP局域网监控。
它是一个基于ncurses的IP局域网监控,产生各种网络统计包括TCP信息,UDP计数,ICMP和OSPF信息,以太网负载,节点统计,IP校验和错误,等等。它提供了以下信息易于阅读格式:
通过TCP连接统计网络流量
通过网络接口统计IP冲突
通过协议统计网络流量
通过TCP/UDP和包大小统计网络流量
通过第二层地址统计网络流量
 
13、tcpdump—网络流量详细信息分析
tcpdump是网络上的流量转发简单命令。然而,使用这个工具,你需要很好地理解TCP/IP协议。举个例子,显示DNS流量信息,输入:
#tcpdump -i eth1 udp port 53
比如,显示所有从端口80进出的IPv4的HTTP包。打印不包含SYN和FIN,还有ACK-only的数据包,输入:
#tcpdump tcp port 80 and (((ip[2:2]-((ip[0]& 0xf)< < 2))-((tcp[12]& 0xf0)> > 2))!=0)
显示所有到202.54.1.5的FTP会话,输入:
#tcpdump -i eth1 dst 202.54.1.5 and (port 21 or 20
显示所有到192.168.1.5的HTTP会话:
#tcpdump -ni eth0 dst 192.168.1.5 and tcp and port http
使用wireshark查看文件的详细信息,输入:
#tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
14、/Proc 文件系统—多种内核统计
/proc文件系统提供了关于多种硬件设备的详细信息和其他Linux内核信息。看看Linux内核/proc文档获取更多详细信息。通用的/proc例子:
#cat /proc/cpuinfo
#cat /proc/meminfo
#cat /proc/zoneinfo
#cat /proc/mounts
15、iftop
1、前提条件安装
# yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
2、下载iftop源码包
# wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.9.tar.gz
3、安装iftop
# tar xvf iftop-0.9.tar.gz
# cd iftop-0.9
# make
# make install
4、使用
# /usr/local/iftop/sbin/iftop < 可把此路径写进环境变量>
5、相关参数及说明
#/usr/local/iftop/sbin/iftop -i eth0 -n   查看eth0网卡的信息,若没有参数是全部的显示
< 1、iftop界面相关说明
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的< = => 这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
< 2、iftop相关参数
常用的参数
-i 设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b 使流量图形条默认就显示;
-f   过滤计算包用的;
-P 使host信息及端口信息默认就都显示;
-m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入iftop画面后的一些操作命令(注意大小写)
按 h 切换是否显示帮助;
按 n 切换显示本机的IP或主机名;
按 s 切换是否显示本机的host信息;
按 d 切换是否显示远端目标主机的host信息;
按 t 切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按 N 切换显示端口号或端口服务名称;
按 S 切换是否显示本机的端口信息;
按 D 切换是否显示远端目标主机的端口信息;
按 p 切换是否显示端口信息;
按 P 切换暂停/继续显示;
按 b 切换是否显示平均流量图形条;
按 B 切换计算2秒或10秒或40秒内的平均流量;
按 T 切换是否显示每个连接的总流量;
按 l 打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按 L 切换显示画面上边的刻度; 刻度不同,流量图形条会有变化;
按 j 或按 k 可以向上或向下滚动屏幕显示的连接记录;
按 1 或 2 或 3 可以根据右侧显示的三列流量数据进行排序;
按 < 根据左边的本机名或IP排序;
按 > 根据远端目标主机的主机名或IP排序;
按 o 切换是否固定只显示当前的连接;
按 f 可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按 ! 可以使用shell命令
按 q 退出监控。
16、Traffic-vis
Traffic-vis是一套测定哪些主机在IP网进行通信、通信的目标主机以及传输的数据量。并输出纯文本、html或者GIF格式的报告。
注:Traffic-vis仅仅适用于SUSE LINUX ENTERPRISE SERVER。
如下命令用来收集网口eth0的信息:
traffic-collector -i eth0 -s /root/output_traffic-collector
可以使用killall命令来控制该进程。如果要将报告写入磁盘,可使用如下命令:
killall -9 traffic-collector
要停止对信息的收集,执行如下命令:killall -9 traffic-collector
注意,不要忘记执行最后一条命令,否则会因为内存占用而影响性能。
可以根据packets, bytes, TCP连接数对输出进行排序,根据每项的总数或者收/发的数量进行。
例如根据主机上packets的收/发数量排序,执行命令:
traffic-sort -i output_traffic-collector -o output_traffic-sort -Hp
如要生成HTML格式的报告,显示传输的字节数,packets的记录、全部TCP连接请求和网络中每台服务器的信息,请运行命令:
traffic-tohtml -i output_traffic-sort -o output_traffic-tohtml.html
如要生成GIF格式(600X600)的报告,请运行命令:
traffic-togif -i output_traffic-sort -o output_traffic-togif.gif -x 600 -y 600
GIF 格式的报告可以方便地发现网络广播,查看哪台主机在TCP网络中使用IPX/SPX协议并隔离网络,需要记住的是,IPX是基于广播包的协议。如果我们需 要查明例如网卡故障或重复IP的问题,需要使用特殊的工具。例如SUSE LINUX Enterprise Server自带的Ethereal。
技巧和提示:使用管道,可以只需执行一条命令来产生报告。如生成HTML的报告,执行命令:
cat output_traffic-collector | traffic-sort -Hp | traffic-tohtml -o output_traffic-tohtml.html
如要生成GIF文件,执行命令:
cat output_traffic-collector | traffic-sort -Hp | traffic-togif -o output_traffic-togif.gif -x 600 -y 600
 
17、date 和 clock
#date -s “12:12:23 2006-10-10″ //这样可以设置全部时间
#clock --systohc //将上面的修改写入硬件时钟
测试查看一下:
#date
#hwclock
=============================
一、时区
1. 查看当前时区
date -R
2. 修改设置时区
方法(1)
tzselect
方法(2) 仅限于RedHat Linux 和 CentOS系统
timeconfig
方法(3) 适用于Debian
dpkg-reconfigure tzdata
 
3. 复制相应的时区文件,替换CentOS系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
在中国可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、时间
1、查看时间和日期
date
2、设置时间和日期
将CentOS系统日期设定成1996年6月10日的命令
date -s 06/22/96
将CentOS系统时间设定成下午1点52分0秒的命令
date -s 13:52:00
3. 将当前时间和日期写入BIOS,避免重启后失效
hwclock -w
三、定时同步时间
# /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2> & 1
 
18、pmap
pmap可以报告某个或多个进程的内存使用情况。使用pmap判断主机中哪个进程因占用过多内存导致内存瓶颈。
pmap < pid>
# pmap   1                            
1: init
START       SIZE     RSS   DIRTY PERM MAPPING
08048000     484K     244K       0K r-xp /sbin/init
080c1000       4K       4K       4K rw-p /sbin/init
080c2000     144K     24K     24K rw-p [heap]
bfb5b000     84K     12K     12K rw-p [stack]
ffffe000       4K       0K       0K ---p [vdso]
Total:       720K     284K     40K
232K writable-private, 488K readonly-private, and 0K shared
显示进程号为47394的内存信息,输入:
#pmap -d 47394
输出示例:
47394:/usr/bin/php-cgi
Address           Kbytes Mode   Offset           Device     Mapping
000000000400000     2584 r-x-- 0000000000000000 008:00002 php-cgi
.....
ffffffffff600000     8192 ----- 0000000000000000 000:00000   [ anon ]
mapped: 933712K     writeable/private: 4304K     shared: 768000K
最后一行非常重要:
mapped:933712K   映射到文件的内存总量
writeable/private:4304K 私有地址空间的数量
shared:768000K 这个进程与其它共享地址空间的数量
 
19、strace
strace截取和记录系统进程调用,以及进程收到的信号。是一个非常有效的检测、指导和调试工具。系统管理员可以通过该命令容易地解决程序问题。
使用该命令需要指明进程的ID(PID),例如:
strace -p < pid>
# strace –p 2582
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(7, "\\"\\\\\\"\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"..., 16384) = 321
write(3, "H\\331q\\37\\275$\\271\\t\\311M\\304$\\317~)R9\\330Oj\\304\\257\\327"..., 360) = 360
select(8, [3 4 7], [3], NULL, NULL)     = 2 (in [7], out [3])
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(7, "\\"\\\\\\"\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"..., 16384) = 323
write(3, "\\204\\303\\27$\\35\\206\\\\\\306VL\\370\\5R\\200\\226\\2\\320^\\253\\253"..., 360) = 360
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 
20、ulimit
ulimit内置在bash shell中,用来提供对shell和进程可用资源的控制
liyawei:~ # ulimit -a
core file size           (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 6143
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                       (-n) 1024
pipe size             (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size               (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes               (-u) 6143
virtual memory           (kbytes, -v) unlimited
file locks                       (-x) unlimited
-H和-S选项指明所给资源的软硬限制。如果超过了软限制,系统管理员会收到警告信息。硬限制指在用户收到超过文件句炳限制的错误信息之前,可以达到的最大值。
例如可以设置对文件句炳的硬限制:ulimit -Hn 4096
例如可以设置对文件句炳的软限制:ulimit -Sn 1024
查看软硬值,执行如下命令:
ulimit -Hn
ulimit -Sn
例如限制Oracle用户. 在/etc/security/limits.conf输入以下行:
soft nofile 4096
hard nofile 10240
对于Red Hat Enterprise Linux AS,确定文件/etc/pam.d/system-auth包含如下行
session required /lib/security/$ISA/pam_limits.so
对于SUSE LINUX Enterprise Server,确定文件/etc/pam.d/login 和/etc/pam.d/sshd包含如下行:
session required pam_limits.so
这一行使这些限制生效。
 
21、mpstat
mpstat是Sysstat工具集的一部分,下载地址是http://perso.wanadoo.fr/sebastien.godard/
mpstat用于报告多路CPU主机的每颗CPU活动情况,以及整个主机的CPU情况。
例如,下边的命令可以隔2秒报告一次处理器的活动情况,执行3次
mpstat 2 3
# mpstat 2 3
Linux 2.6.16.21-0.8-default (liyawei)   05/31/07
10:23:03     CPU   %user   %nice     %sys %iowait     %irq   %soft   %steal   %idle     intr/s
10:23:09     all     0.00     0.00     0.00     0.00     0.00     0.00     0.00   100.00     261.50
Average:     all     0.17     0.00     0.00     0.67     0.00     0.00     0.00   99.17     264.73
如下命令每隔1秒显示一次多路CPU主机的处理器活动情况,执行3次
mpstat -P ALL 1 3
# mpstat -P ALL 1 10
Linux 2.6.16.21-0.8-default (liyawei)   05/31/07
10:23:31     CPU   %user   %nice     %sys %iowait     %irq   %soft   %steal   %idle     intr/s
10:23:34       0     0.00     0.00     0.00     0.00     0.00     0.00     0.00   100.00     271.00
10:23:35     all     0.00     0.00     0.00     1.98     0.00     0.00     0.00   98.02     254.46
10:23:35       0     0.00     0.00     0.00     1.98     0.00     0.00     0.00 
98.02     254.46
【linux系统维护命令】 


    推荐阅读