注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 小五思科技术学习笔记之SSH
 帮助

Solaris 10 系统维护


2006-10-24 13:46:27
 标签:solaris solaris   [推送到技术圈]

作者:田逸(sery@163.com
相信很多人和我有类似的想法:要是solaris 10安装配置完以后把它扔到某个位置再也不用管它,那该有多好。当然,这只是我们的一厢情愿而已!尽管solaris 10的功能已经异常强大、性能超级稳定,但还是需要我们经常性的看管和维护。维护的主要内容包括监控、配置/设置修改以及故障处理这几个方面,下面我们分别以一些实例来讨论这些情形。
 
系统监控
监控最主要的目的是了解和掌握系统的负载和性能。
 
(一)   了解系统的状况。
1、查看正在运行的solaris 10的版本,使用不带参数的命令 showrev,此命令加选项-r则是另外一个功能:查看目前系统所需要安装的补丁程序。
root@zsc # showrev
Hostname: zsc
Hostid: 841e69f3
Release: 5.10
Kernel architecture: sun4u   //intel架构的服务器输出不一样
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.10 Generic_118833-18  //内核版本号
2、查看硬件设备的某些情况,使用命令 prtconfig.
root@zsc # prtconf
System Configuration:  Sun Microsystems  sun4u //intel,amd cpu的输出不同
Memory size: 8192 Megabytes     //内存为8G
System Peripherals (Software Nodes):
 
SUNW,Sun-Fire-V490
    scsi_vhci, instance #0
    packages (driver not attached)
        SUNW,builtin-drivers (driver not attached)
………
3、查看本机所连接的磁盘数量,使用命令 format.这个命令也是格式化硬盘的工具。
root@zsc # format
Searching for disks...done
 
 
AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
          /pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w21000014c39d4d9d,0
       1. c1t1d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
          /pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w21000014c39d4d9b,0
   从输出可以知道此服务器有2scsi硬盘。
4、查看网络接口的状况,使用带选项的命令 ifconfig –a  .
root@zsc # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
ce0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 61.128.x.x netmask ffffff00 broadcast 61.128.x.255
        ether 0:14:4f:1e:69:f3  //ce0是网络接口的名字
ce1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 192.168.x.5 netmask ffffff00 broadcast 192.168.x.255
        ether 0:14:4f:1e:69:f3  //x是某个具体的数值,安全起见这样处理
    从输出可知,本机有2个网络接口。如果网络接口配置错误或没有激活,将有可能在输出中看不见接口名称及状态。
5、查看cpu的个数,使用不带参数的命令mpstat
root@db890 ~#mpstat    //这个命令也是查看CPU负载的工具
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    0   1  136     3    1   67    1    1    6    1    93    0   1   4  94
  1    0   1  101    25   22   67    1    1    6    1    85    0   1   4  95
  2    0   1  121     3    1   68    1    1    6    1    91    0   1   4  95
  3    0   1  129     3    1   69    1    1    6    1    95    0   1   4  95
  4    0   1  126     3    1   69    1    1    5    1    95    0   1   4  95
  5    0   1  125   129  126   66    1    1    5    1    90    0   1   4  95
  6    0   1  123     4    1   68    1    1    6    1    92    0   1   4  95
  7    0   1  105   242  140   65    1    1    7    1    89    0   0   4  95
    从输出可知此服务器有8cpu,此处按0-7的序号开始;有些输出不会以顺序序号开始,但可以从行数得知cpu数目(有多少行就有多少个cpu)。
 
(二)、用户及系统活动监控。
 
1、  查看系统运行了多少时间,使用不带参数的命令 uptime
root@zsc # uptime
 上午 848     运行 4 15:12,  2 用户,  平均负载:0.01, 0.01, 0.01
 
2、  查看有那些用户登录到solaris 10系统,使用命令 w.
root@zsc # w
 上午 912     运行 4 15:36,  3 用户,  平均负载:0.02, 0.01, 0.01
用户名   终端号         登入时间       闲置   JCPU   PCPU  执行命令
root     console      周一下午 5      5   4:53   4:53  /usr/dt/bin/dtscreen -mode blank
root     pts/3        上午 836       25                -bash
root     pts/4        上午 912                         w
 
3、  查看系统的运行级别,使用带选项的命令 who –r .
root@zsc # who -r
   .       run-level 3  10  9 17:36     3      0  S
 
4、查看系统近期的运行状态(包括关机、重起、用户登录等),使用不带参数的命令last.
root@zsc # last |more
root      pts/3       211.94.81.227    Sat Oct 14 14:31 仍在登录状态
root      sshd        211.94.81.227    Sat Oct 14 14:31 仍在登录状态
root      sshd        218.247.140.197  Sat Sep 16 12:03 - 12:04  (00:00)
oracle    console     :0               Sat Sep 16 12:02 - 关机  (00:02)
reboot    system boot                  Sat Sep 16 12:02
reboot    system down                  Sat Sep 16 12:01
root      pts/4       61.128.122.128   Sat Sep 16 12:01 - 关机  (00:01)
root      sshd        61.128.122.128   Sat Sep 16 12:01 - 关机  (00:01)
oracle    console     :0               Sat Sep 16 12:00 - 关机  (00:01)
reboot    system boot                  Sat Sep 16 11:59
reboot    system down                  Sat Sep 16 11:59
oracle    console     :0               Sat Sep 16 11:58 - 关机  (00:01)
root      console     :0               Sat Sep 16 11:53 - 11:54  (00:00)
oracle    console     :0               Sat Sep 16 11:52 - 11:53  (00:01)
 
5、  查看系统运行的进程,通俗一点说就是查看系统正在运行那些程序,这是系统管理和维护过程中使用得最频繁的工具。使用带若干选项的命令 ps .ps-进程状态的缩写。笔者常用的3个选项是:-a 列出请求最频繁的进程;-e 列出正在运行的进程;-f打印进程的详细信息。另外还有一个类似的工具ptree,用来查看进程树(提示:linux里查看进程树的工具是pstree)。
root@zsc # ps -aef
     UID   PID  PPID   C    STIME TTY         TIME CMD
    root     0     0   0  10 09 ?           0:10 sched
    root     1     0   0  10 09 ?           0:02 /sbin/init
    root     2     0   0  10 09 ?           0:00 pageout
    root     3     0   0  10 09 ?          46:11 fsflush
  daemon   209     1   0  10 09 ?           0:00 /usr/lib/nfs/statd
root 15302   315   0 14:31:04 ?           0:00 /usr/lib/ssh/sshd
  oracle  2917     1   0  10 10 ?           0:06 ora_smon_zsjdb
  oracle  6093     1   0  10 12 ?           0:00 ora_s041_zswdb
  oracle  5995     1   0  10 12 ?           0:31 ora_pmon_zswdb
  oracle  2915     1   0  10 10 ?           0:11 ora_ckpt_zsjdb
root@zsc # ptree
7     /lib/svc/bin/svc.startd
  212   /usr/lib/saf/sac -t 300
    231   /usr/lib/saf/ttymon
  219   /usr/lib/saf/ttymon -g -d /dev/console -l console -T sun -m ldterm,ttc
9     /lib/svc/bin/svc.configd
102   /usr/lib/sysevent/syseventd
103   /usr/sbin/nscd
113   /usr/lib/picl/picld
123   /usr/lib/crypto/kcfd
201   /usr/sbin/cron
2442  /opt/oracle/product/9.2.0/bin/tnslsnr LISTENER -inherit
2909  ora_pmon_zsjdb
2911  ora_dbw0_zsjdb
2913  ora_lgwr_zsjdb
       有的时候,需要手动结束一个运行的进程,这种情况发生在诸如程序本身没有关闭指令等这样的场景。结束进程使用killkillall来完成。执行结束进程的操作一定要仔细,看准确了再执行,不要杀错进程。另外一个值得注意的是,不要随便赋予普通用户结束进程的权限,这是很冒险的事情。
 
6、  查看磁盘的使用情况也是一项十分重要的工作。再大的磁盘空间也会随时间的推移而逐渐变小,当磁盘空间增加到一定限度的时候,有一些程序将发生错误甚至停止工作,我这里曾有一台监控服务器发送没有标题和内容的报警邮件,原因就是分区 /tmp 被文件填满而不能写入数据所致。使用带参数的命令 df –kdf –h来查看系统硬盘的容量使用情况,笔者本人倾向于使用参数 –hhuman readable format)使其输出的格式更加人性化。
root@zsc # df -k
文件系统              千字节    用了    可用 容量      挂接在
/dev/dsk/c1t0d0s0    11093692 7886931 3095825    72%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 2526104    1048 2525056     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
fd                         0       0       0     0%    /dev/fd
/dev/dsk/c1t0d0s5    6050982 1588792 4401681    27%    /var
swap                 2525376     320 2525056     1%    /tmp
swap                 2525096      40 2525056     1%    /var/run
/dev/dsk/c1t1d0s2    141179002   65553 139701659     1%    /opt/disk2
/dev/dsk/c2t40d0s6   281589229 7006562 271766775     3%    /opt/data1
/dev/dsk/c2t40d1s6   281589229  107661 278665676     1%    /opt/data2
/dev/dsk/c2t40d2s6   281589229 2182197 276591140     1%    /opt/data3
root@zsc # df -h
文件系统               大小   用了   可用 容量      挂接在
/dev/dsk/c1t0d0s0       11G   7.5G   3.0G    72%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   2.4G   1.0M   2.4G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
fd                       0K     0K     0K     0%    /dev/fd
/dev/dsk/c1t0d0s5      5.8G   1.5G   4.2G    27%    /var
swap                   2.4G   320K   2.4G     1%    /tmp
swap                   2.4G    40K   2.4G     1%    /var/run
/dev/dsk/c1t1d0s2      135G    64M   133G     1%    /opt/disk2
/dev/dsk/c2t40d0s6     269G   6.7G   259G     3%    /opt/data1
/dev/dsk/c2t40d1s6     269G   105M   266G     1%    /opt/data2
/dev/dsk/c2t40d2s6     269G   2.1G   264G     1%    /opt/data3
 
7、  查看网络连接,使用带选项的命令 netstat .
root@zsc # netstat –anp  //linux用这个选项将输出更多的信息,包括连接的进程等
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
ce0    61.128.x.1         255.255.255.255       00:00:0c:07:ac:7a
ce1    192.168.x.5        255.255.255.255 SP    00:14:4f:1e:69:f3
ce0    61.128.x.3         255.255.255.255       00:0c:31:0b:48:8a
ce0    61.128.x.30        255.255.255.255       00:14:22:0e:f4:c6
ce0    61.128.x.27        255.255.255.255       00:14:22:b0:94:18
ce0    61.128.x.40        255.255.255.255 SP    00:14:4f:1e:69:f3
ce1    224.0.0.0            240.0.0.0       SM    01:00:5e:00:00:00
ce0    224.0.0.0            240.0.0.0       SM    01:00:5e:00:00:00