《linux核心应用命令速查》连载十五:chkconfig:设置系统的各种服务
chkconfig:设置系统的各种服务
作用:chkconfig命令检查、设置系统的各种服务。
用法:chkconfig [--add][--del][--list][系统服务]
或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
主要选项如下。
— --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
— --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
— --level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关闭。
说明:chkconfig提供了一个简单的命令行工具用于维护/etc/rc[0-6].d的路径层次,可以帮助系统管理员在这些路径中直接操作符号行,chkconfig的执行是通过chkconfig命令激发的,此命令目前在irix操作系统中存在,甚至包括了维护/etc/rc[0-6].d层次之外的设置信息。chkconfig有5个不同的函数:为管理器添加新服务,从管理器中移出服务,列出当前启动的服务信息,改变服务启动信息,检查特殊服务的启动状态。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
应用实例如下。
(1)显示所有服务的状态
#chkconfig –list
结果如图4-5所示。
图4-5 显示所有服务的状态
结果会看到一个系统服务列表,以及它们在运行级别0~6中已被启动(on)或停止(off)。
(2)chkconfig管理服务技巧
从图4-5的列表末端,会看到由xinetd管理的服务部分。如果使用chkconfig--list来查询由xinetd管理的服务,会看到xinetd服务是被启用了(on)还是被关闭了(off)。例如,命令chkconfig--list finger返回了下列输出:
finger on
如上所示,finger作为xinetd服务被启用。如果xinetd在运行,finger就会被启用。
如果使用chkconfig --list来查询/etc/rc.d中的服务,会看到服务在每个运行级别中的设置。例如,命令chkconfig --list anacron返回了下列输出:
Anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。例如,要在运行级别3,4,5中停运nscd服务,使用下面的命令:
Chkconfig --level 345 nscd off
补充说明:由xinetd管理的服务会立即被chkconfig影响。例如,如果xinetd在运行,finger被禁用,那么执行了chkconfig finger on命令后,finger可以自动随xinetd的改变而自动启用。对其他服务的改变在使用chkconfig之后不会立即生效,必须使用service daemon stop命令来停止个别服务。在前面的例子中,可以把daemon换成想停止的服务名称(如httpd)、把stop换成start或restart来启动或重新启动该服务。
4.23 strace:跟踪一个进程的系统调用或信号产生的情况
作用:strace命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。strace显示这些调用的参数并返回符号形式的值。strace从内核接收信息,而且不需要以任何特殊的方式来构建内核。
用法:strace [选项]
主要选项如下。
— -f:除了跟踪当前进程外,还跟踪其子进程。
— -o file:将输出信息写到文件file中,而不是显示到标准错误输出(stderr)。
— -p pid:绑定到一个由pid对应的正在运行的进程,此参数常用来调试后台进程。
应用实例如下。
(1)跟踪vim及其子进程的运行,将输出信息写到文件vim.strace
# strace -f -o vim.strace vim
(2)strace同时跟踪多个进程
#strace -o a.strace -f -F -p 4579 -p 4580 -p 4581
4.24 ltrace:跟踪进程调用库函数的情况
作用:ltrace命令用来跟踪进程调用库函数的情况。
用法:ltrace [选项]
主要选项如下。
— -f:除了跟踪当前进程外,还跟踪其子进程。
— -o file:将输出信息写到文件file中,而不是显示到标准错误输出(stderr)。
— -p pid:绑定到一个由pid对应的正在运行的进程,此参数常用来调试后台进程。
— -d:打印调试信息。
应用实例如下。
跟踪一个pid为234的已经在运行的进程:
#ltrace -p 234
4.25 vmstat:报告虚拟内存统计信息
作用:vmstat命令报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。由vmstat命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
用法:vmstat [-V] [-n] [延时[次数]]
主要选项如下。
— -n:开关令第一次的信息只显示一次而不是周期地产生。
— 延时:是以秒为单位的刷新时间间隔。如果没有给出此延时时间,则仅显示系统启动至今的平均值。
— 次数:指的是更新的次数。如果没有指定次数而又定义了延时时间,则次数的默认值是无穷次。
— -V:开关可以用来输出该命令的版本信息。
应用实例如下。
使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试:
#vmstat 5 5
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 0 32188 6412 47252 0 0 200 47 121 89 8 6 85
0 0 0 0 32188 6420 47252 0 0 0 6 101 20 0 0 100
0 0 0 0 32188 6420 47252 0 0 0 0 101 19 0 0 100
0 0 0 0 32188 6420 47252 0 0 0 0 101 20 0 0 100
0 0 0 0 32188 6420 47252 0 0 0 0 101 22 0 0 100
结果将得到一个数据汇总,它可以反映真正的系统情况。vmstat命令输出分成6个部分。
(1)进程procs
r:在运行队列中等待的进程数。
b:在等待I/O的进程数。
w:可以进入运行队列但被替换的进程。
(2)内存memory
swpd:现时可用的交换内存,单位为KB。
free:空闲的内存,单位为KB。
buff:缓冲区中的内存数,单位为KB。
cache:被用来作为高速缓存的内存数,单位为KB。
(3)swap交换页面
si:从磁盘交换到内存的交换页数量,单位为KB/s。
so:从内存交换到磁盘的交换页数量,单位为KB/s。
(4)I/O块设备
bi:发送到块设备的块数,单位为块/秒。
bo:从块设备接收到的块数,单位为块/秒。
(5)system系统
in:每秒的中断数,包括时钟中断。
cs:每秒的环境(上下文)切换次数。
(6)CPU中央处理器
cs:用户进程使用的时间,以百分比表示。
sy:系统进程使用的时间,以百分比表示。
id:中央处理器的空闲时间,以百分比表示。
如果r经常大于4,且id经常小于40,表示中央处理器的负荷很重。如果bi和bo长期不等于0,表示物理内存容量太小。
4.26 mpstat:监测CPU(包括多CPU)性能
作用:mpstat命令专门监测CPU(包括多CPU)性能。
用法:mpstat[选项]
主要选项如下。
— -P {|ALL}:表示监控哪个CPU,CPU在[0,cpu个数-1]中取值。
— internal:相邻的两次采样的间隔时间。
— count:采样的次数,count只能和delay一起使用。
应用实例如下。
# mpstat
Linux 2.6.18-164.el5xen (localhost.localdomain) 2010年03月26日
16时28分28秒 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
16时28分28秒 all 0.11 0.02 0.16 0.35 0.00 0.03 0.03 99.31 53.81
mpstat输出说明如下。
CPU:处理器ID。
%user:用户模式(应用程序)占用CPU的百分比。
%nice:用户模式(使用nice命令改变既定优先级权限的应用程序)占用CPU的百分比。
%system:核心占用CPU的百分比。
%idle:处理器的闲置时间百分比,以上四项总和为100%。
intr/s:处理器每秒处理的中断数量。
4.27 iostat:监测I/O性能
作用:iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
用法:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
主要选项如下。
— -c:显示CPU的使用情况。
— -d:显示磁盘的使用情况。
— -k:表示按千字节每秒显示数据。
— -t:打印汇报的时间。
— -v:表示打印出版本信息和用法。
— -x device:指定要统计的设备名称,默认为所有的设备。
— interval:指每次统计间隔的时间,count指按照这个时间间隔统计的次数。
说明:目前Linux计算机系统的主要性能瓶颈在于I/O环节,这主要是由于I/O系统性能的提高远远低于CPU和内存性能的提高。根据摩尔定律,CPU性能和内存容量每18个月就可翻一番。但是作为外存的主要设备——硬磁盘,由于机械运动的本质特征导致性能的提高非常有限,每年约7%。这样可由摩尔定律得出,如今I/O的性能在系统整体性能中占有举足轻重的地位。目前优化磁盘性能的各种技术主要侧重于如何提高数据传输的带宽,很少有侧重于降低延迟的。
应用实例如下。
用iostat –x /dev/sda1来观看磁盘I/O的详细情况:
# iostat –x /dev/sda1
Linux 2.6.18-164.el5xen (localhost.localdomain) 2010年03月26日
avg-cpu: %user %nice %system %iowait %steal %idle
0.11 0.02 0.18 0.35 0.03 99.31
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda1 0.02 0.08 0.00 2014 4
详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和mpstat命令相同)。这里主要关注后面I/O输出的信息,如表4-1所示。
表4-1 iostat输出
标 示 | 说 明 |
Device | 监测设备名称 |
rrqm/s | 每秒需要读取需求的数量 |
wrqm/s | 每秒需要写入需求的数量 |
r/s | 每秒实际读取需求的数量 |
w/s | 每秒实际写入需求的数量 |
rsec/s | 每秒读取区段的数量 |
wsec/s | 每秒写入区段的数量 |
rkB/s | 每秒实际读取的大小,单位为KB |
wkB/s | 每秒实际写入的大小,单位为KB |
avgrq-sz | 需求的平均大小区段 |
avgqu-sz | 需求的平均队列长度 |
await | 等待I/O平均的时间(milliseconds) |
svctm | I/O需求完成的平均时间 |
%util | 被I/O需求消耗的CPU百分比 |
4.28 sar:系统活动情况报告
作用:sar一个开放源代码工具,它由Sebastien Godard维护。这个工具也包含于大部分Linux发行版本中,可用于当前的2.4和2.6版内核,在Red Hat Linux中是Sysstat。Sysstat 包括I/O与CPU统计资料的工具iostat、mpstat(用于多处理器性能监测)和sar。前面我们介绍了iostat、mpstat,下面重点介绍sar。
用法:sar [选项]
主要选项如下。
— -A:汇总所有的报告。
— -a:报告文件读写使用情况。
— -B:报告附加的缓存的使用情况。
— -b:报告缓存的使用情况。
— -c:报告系统调用的使用情况。
— -d:报告磁盘的使用情况。
— -g:报告串口的使用情况。
— -h:报告关于buffer使用的统计数据。
— -m:报告IPC消息队列和信号量的使用情况。
— -n:报告命名Cache的使用情况。
— -p:报告调页活动的使用情况。
— -q:报告运行队列和交换队列的平均长度。
— -R:报告进程的活动情况。
— -r:报告没有使用的内存页面和硬盘块。
— -u:报告CPU的利用率。
— -v:报告进程、I结点、文件和锁表状态。
— -w:报告系统交换活动状况。
— -y:报告TTY设备活动状况。
应用实例如下。
(1)察看内存和交换空間的使用率,使用sar -r
# sar -r
Linux 2.4.20-8 (www.cao.com) 20050503
12:00:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached
12:10:00 AM 240468 1048252 81.34 0 133724 485772
12:20:00 AM 240508 1048212 81.34 0 134172 485600
…
08:40:00 PM 934132 354588 27.51 0 26080 185364
Average: 324346 964374 74.83 0 96072 467559
kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB。
#sar -o temp 60 10
说明:sar是System Activity Reporter(系统活动情况报告)的缩写。顾名思义,sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。sar是读/proc这个内存文件系统进行采样来得到数据的。sar从/var/log/sa/sadd读取记录文件的资料。/usr/lib/sa/sadc负责维护系统活动资料和建立这些记录文件。sar实际包括两个Shell程序/usr/lib/sa/sa1和/usr/lib/sa/sa2。/etc/cron.d/systat是crontab的系统文件,每10分钟执行sa1程序一次,然后将它的输出加到记录文件后面。sa1以二进制格式储存sar所读取的资料。/usr/lib/sa/sa2将每天数据写入文件/var/log/sa/sadd。dd表示每月的日期。sar是目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,使用也较为复杂。
4.29 ntsysv:设置系统服务
作用:ntsysv是Red Hat公司遵循GPL规则所开发的程序,它具有交互式操作界面,可以轻易地利用方向键和空格键等,开启、关闭操作系统在每个执行等级中所要执行的系统服务。
用法:ntsysv [--back] [--level <levels>]
主要选项如下。
— --back:在交互式界面中显示上一步按钮。
— --level<levels>:在指定的执行等级中选择要打开或关闭的系统服务;等级为0~6,可一次指定多个等级,如“123”表示同时设定等级为1,2和3的服务。
levels执行的状态如下。
— 0:关机。
— 1:单人用户模式的文字界面。
— 2:多人用户的文字界面,但不具有NFS功能。
— 3:多人用户的文字界面,并且具有全部的网络功能。
— 4:某些发行版本使用此参数可进入X Window。
— 5:某些发行版本使用此参数可进入X Window。
— 6:重新启动。
应用实例如下。
(1)配置系统的各种服务运行等级
#ntsysv
如图4-6所示,可以按F1键寻求操作帮助。
图4-6 配置系统的各种服务运行等级
(2)配置运行级别
编辑运行级别0,1和6:
#ntsysv --levels 016
(3)在交互式界面中显示Back按钮
例如,配置系统的各种服务运行等级,并且在交互式界面中显示Back按钮,可在命令行提示符下输入:
#ntsysv –-back
如图4-7所示,原来界面中的Cancel按钮已被Back按钮取代。
图4-7 在交互式界面中显示Back按钮
作者:曹江华, 方建国编著
ISBN:978-7-121-11149-5
出版日期:2010年7月
定价:59.00元
开本:16开
页码:528 页
内 容 简 介
经过十几年的发展,Linux操作系统不断完善,得到了更多的应用。现在,Linux桌面已经相对成熟,但是命令行技术仍然是Linux 的核心技术。
本书汇集了Linux命令行下核心管理命令(包括最新的虚拟化管理命令、SELinux管理命令)的功能说明、语法说明、选项介绍、典型应用实例和注意事项等,对每一个命令都做了非常详尽的介绍,并列举了大量的实例进行说明,可以使读者对Linux下的命令有快速深入的认识。全书按照Linux命令的功能进行分类,便于读者查询。阅读本书之前不需要读者掌握太多的背景知识,无论读者是UNIX用户还是Linux新手,甚至是从未接触过Linux的Windows用户,都可以轻松地理解和掌握这些内容,并可以快速了解和使用各个发行版的Linux系统。本书使用RHEL 5.5所涉及的命令,同时也适用于其他Linux发行版,是所有Linux用户必备的参考用书。
相关连载:
《linux核心应用命令速查》连载十四:fuser:用文件或者套接口表示进程
《linux核心应用命令速查》连载十三:renice:修改优先权等级
《linux核心应用命令速查》连载十一:pstree:显示进程状态树
《linux核心应用命令速查》连载九:crontab:设置计时器
《linux核心应用命令速查》连载六:batch:在系统负载水平允许的时候执行命令
《linux核心应用命令速查》连载五:atq:显示目前使用at命令后待执行的命令队列
《linux核心应用命令速查》连载三:sa:报告、清理并维护进程统计文件