ITPub博客

首页 > Linux操作系统 > Linux操作系统 > unix系统管理有效指令

unix系统管理有效指令

原创 Linux操作系统 作者:波罗2009 时间:2009-05-28 17:55:53 0 删除 编辑

unix系统管理有效指令

1.批量杀进程

ps -ef|grep "ora_"|grep -v grep|awk '{ print $2 }'|xargs kill -9
批量杀死含有ora字符串的进程

2.
在/usr 及所有子目录下查找名字是 vi 的文件
find /usr -name vi

在当前目录及所有子目录下查找文件名包含 net 的文件
find ./ -name "net*"

3.获取 Oracle 主目录(ksh)
cat /etc/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'

4.为 Oracle 创建有用的 unix 别名

下面在.profile中定义了一些常用的别名:
# Aliases 

alias alert='tail -100\
$ORACLE_HOME/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.lo
g|more' alias arch='cd $ORACLE_HOME/admin/$ORACLE_SID/arch'
alias bdump='cd $ORACLE_HOME/admin/$ORACLE_SID/bdump'
alias cdump='cd $ORACLE_HOME/admin/$ORACLE_SID/cdump'  
alias pfile='cd $ORACLE_HOME/admin/$ORACLE_SID/pfile'
alias rm='rm -i'
alias sid='env|grep ORACLE_SID'
alias admin='cd $ORACLE_HOME/admin'

5.如果你将后台作业的输出重定向到了一个文件,那么你可以通过 tail -f 命令来监
控后台进程的运行情况。例如:
tail -f logfile.list
tail  -f 命令不断的显示输出文件中的新的行,从而让你很轻松的可以看到进程的执
行情况。为了终止tail –f 命令,可以随时按下 Ctrl-C。

6. 进程管理
 ps -ef|grep "ora_"|grep -v grep

UID:代表用户
PID:代表进程
PPID:父进程。如果父进程是 1,则代表该进程是由init 进程调用的。
STIME:启动时间
CMD:被执行的 Unix 命令

查看消耗 CPU 时间最长的进程:
$ ps -ef|grep oracle|sort +6|tail

oracle      914      1  0.0   Sep 22 ??           0:00.19 ora_s000_gaxz
oracle      908      1  0.0   Sep 22 ??           0:00.20 ora_reco_gaxz
oracle      898      1  0.0   Sep 22 ??           0:02.94 ora_pmon_gaxz
oracle      900      1  0.0   Sep 22 ??           0:07.89 ora_dbw0_gaxz

sort +6 的作用是按照第 6 列排序。最左边的是第0 列,第 6列是CPU消耗的时间,
但是如果程序运行了 1 天以上,那么 STIME 就会包含两列,因此上面的例子实际上
第 7 列是消耗 CPU 时间:
ps -ef|grep afis|sort +7|tail

是第 6 列还是第 7 列的确是一个麻烦的问题,没有什么太简单的方法,一般各执行
一遍。tail 的作用是显示输出的后多少行,默认是10

另外一个查找高 CPU 消耗进程的方法是使用 Berkeley 的 ps auxgs 命令。这个命令
输出的第 3 列(sort 中的+2)名字叫%CPU, 显示的是当前每个进程的CPU 持有百分比。
你可以按照此列排序来获得当前高 CPU 占用的用户。
$ ps auxgw|egrep "RSS| "|head

USER PID %CPU %MEM SZ RSS TTY TIME 
root 516 78.9 1.0 16 4 - A Nov 21 
oracle 41616 4.4 1.0 8312 6052 - A 07:00:59 
oracle 20740 2.7 1.0 8140 5888 - A 08:52:32 
oracle 17402 2.4 1.0 8296 6044 - A 07:27:04

egrep 的作用是对 ps 的输出排序过滤,head 的作用是显示输出的头 10 行 。


显示 Oracle 的活动连接用户数量
# ps -ef|grep $ORACLE_SID|grep -v grep|grep -v ora_|wc -l

7.内存和 CPU 管理

显示内存信息:

Linux下显示内存大小:
 18《Oracle DBA 的 UNIX 袖珍参考手册》中文版 by turner
   /usr/sbin/dmesg | grep "Physical:"

显示 TRU64 下的内存信息:
$ /bin/vmstat -P | grep "Total Physical Memory"

Total Physical Memory =    1024.00 M
         Total Physical Memory Use:     130730 / 1021.33M

显示 HP-UX下的内存信息:
grep MemTotal /proc/meminfo

Solaris 下显示内存大小:
/usr/sbin/prtconf | grep "Memory size"

Aix 下显示内存大小:
/usr/sbin/lsattr -E -l sys0 -a realmem

AIX下显示 CPU数量
# lsdev -C|grep Process|wc -l

Solaris 下显示 CPU数量
# psrinfo -v|grep "Status of processor"|wc –l
如果是显示结果是中文,可能上面的命令显示有误。可以用psrinfo -v  来代替。

8.服务器监控

top

Load averages:平均负载。如果大于 1 说明服务器负荷过重。
CPU states:CPU 信息概要。7.5% user 的意思是 CPU 有 7.5%是用户占用,其他可按字面类推。
Memory:Free 表明可用的内存数量。本例子中可用内存是 15M。
IDLE:CPU 空闲百分比

sar
sar 在 SVR4 环境中,例如 HP-UX、Solaris 中很普及,在 aix 中也可以用。Sar 命
令可以查看整体CPU 消耗情况,磁盘、内存、JFS  buffer 使用情况等。常见的sar使用
例子:

sar -u 2 5
上面的命令每 2 秒显示一次 cpu 情况,显示5 次。

 
显示交换(swapping)活动。例如 5 秒钟显示一次,显示5 次:
# sar -w 5 5 
HP-UX corp-hp1 B.11.00 U 9000/800 08/09/00 
19:37:57 swpin/s bswin/s swpot/s bswot/s pswch/s 
19:38:02 0.00     0.0   0.00     0.0   222 
19:38:07 0.00     0.0    0.00     0.0    314 

Average 0.00      0.0    0.00     0.0    294
上面的输出列的含义:
swpin/s 每秒钟交换进(sawp-in)的进程数量 
swpot/s 每秒钟交换出(sawp-out)的进程数量 
bswin/s 每秒钟交换进的块数(每块512字节)
bswot/s 每秒钟交换出的块数(每块512字节)
pswch/s 每秒钟上下文交换数量

vmstat
vmstat 是通用的 UNIX 监控工具,vmstat 在 IRIX 操作系统中是 osview。vmstat 的
第一个参数是间隔的秒数,也可以带第二个参数,表明显示多少次。vmstat 不同操
作系统输出结果不一样,含义也可能有区别,具体要看 man 帮助。
# vmstat 3 
kthr     memory                cpu 
---- ... --------------- ... -------------- 
r b ... fre re pi sr ... cs us sy id wa 
0 0 ... 207 0 1 0 ... 142 18 4 75 4 
0 0 ... 187 0 4 0 ... 70 2 1 91 6 
0 0 ... 184 0 0 0 ... 99 5 2 89 4

在 HP-UX 或 AIX 下 vmstat 输出中一些重要的信息:

r  
运行队列。当这个值超过CPU数量的时候,服务器就有CPU瓶颈(可以通
过lsdev -C|grep Process|wc -l 来获取CPU数量) 

pi  
page-in数量。这个参数非0暗示着系统缺少内存,内存被交换到磁盘。然而
当程序刚使用的时候也可能导致page-in非0。为了找到真正原因,则检查sr
列。如果sr也是非0,那么的确意味着缺少内存。

sr  
扫描速率。如果扫描速率持续增加,那么页交换后台程序忙于分配内存页。
下面是CPU的一些信息: 

us  
用户占用CPU的百分比 

sy  
系统占用CPU的百分比 

id  
空闲CPU百分比 

wa 
等待CPU的百分比 

用户和系统百分比之和(us+sy)接近 100 时,说明 CPU 繁忙,但并不意味着 CPU 过载。sr 超过
CPU数量的时候意味着 CPU过载。当 CPU等待(wa)超过 20的时候,那么 20%或者更多的处理
时间在等待资源,通常是 I/O。通常在备份或者导出等 I/O操作的时候这个百分比比较大;但如
果正常的时候这个值一直挺高则也可能有 I/O瓶颈。


显示 HP-UX 下的交换区使用情况
# swapinfo -tam 
Mb Mb Mb... 
TYPE     AVAIL   USED   FREE... 
dev     1024      25     999... 
reserve –       999    -999... 
memory   3966    3547    419... 
total   4990     4571    419... 
... PCT Mb 
... USED RESERVE PRI NAME 
... 2% 1 /dev/vg00/lvol2 
... 
... 89% 
... 92% 0 -  

显示服务器平均负载情况(w 命令) 。
Unix 的w 命令用来显示高资源会话简单的信息。大多数的有经验的 Oracle  DBA都会
首先用这个命令来快速查看一下服务器负载情况,因为 w 命令在几乎所有的Unix下
都可以用。

# w 

10:02AM up 60 days, 18:46, 3 users, 
load average: 0.32, 0.39, 0.43 
User   tty   login@   idle   JCPU   PCPU      what 
Oracle   pts/0 08:17AM   0     80:18  80:16  w 
oracle  pts/1 09:15AM  5     2     0        ftp 
miltonrv pts/2 01May    009days 0     0    -ksh

上面的输出中的 load  average 分别是过去 1 分钟、5 分钟、15 分钟的负载情况。如
果大于 1 说明 CPU 紧张。

使用 iostat
iostat 显示物理磁盘 I/O情况。下面的3 表明 3 秒钟显示一次。

iostat 3
System configuration: lcpu=2 disk=5
tty:      tin         tout   avg-cpu:  %  user    %  sys     %  idle    %  iowait
          0.0        1302.0               1.8      0.6       89.3       8.
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21639366/viewspace-604406/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-05-13

  • 博文量
    22
  • 访问量
    77510