Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591193
  • 博文数量: 57
  • 博客积分: 877
  • 博客等级: 准尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-24 16:16
文章分类

全部博文(57)

文章存档

2014年(2)

2013年(15)

2012年(20)

2011年(20)

我的朋友

分类: 系统运维

2013-03-19 22:32:01

    今天看了一篇 老外的博文,关于解决服务器故障的前5分钟我们该了解什么,知道什么!原文地址是:http://devo.ps/blog/2013/03/06/troubleshooting-5minutes-on-a-yet-unknown-box.html

  

    看了博文,大致的内容如下:

  

     在服务器出现故障之前不要先急于解决问题,而是要先找出和故障相关的一些细节信息,这样才不会浪费大量的时间

     比如:

      1:出现这个故障会产生什么样的后果,反应变慢?报错?业务中断?

      2:这故障时什么时候被人发现的?

      3:这个故障会重复产生吗?

      4:在产生故障之前对服务器有过什么操作,比如修改代码,参数调整,协议栈等

      5:故障是否有特殊性?比如只针对某些用户,某个地域

      6:针对该服务故障是否存在可参考的文档?

      7:是否有监控平台? 比如:Zabbix, Nagios, New Relic

      8:是否有服务错误日志可供参考?

 

 

 

下面的一些命令可以让你或许一些有用信息:

 

查看用户

$ w
$ last

 

这个2个命令虽然不怎么重要,但它确可以让你知道还有谁在操作这服务器,一个厨房只要一个厨师就够了

 

之前操作了什么命令

 

$ history

 

有哪些进程在跑

 

$ pstree -a
$ ps aux

 

 

有哪些网络服务开启的,监听的端口是什么

 

 

$ netstat -ntlp
$ netstat -nulp
$ netstat -nxlp

 

 

cpu和内存信息

 

$ free -m
$ uptime
$ top
$ htop

 

硬件信息

 

$ lspci
$ dmidecode
$ ethtool

 

io 性能

 

$ iostat -kx 2
$ vmstat 2 10
$ mpstat 2 10
$ dstat --top-io --top-bio

 

挂载的文件系统信息

$ mount
$ cat /etc/fstab
$ vgs
$ pvs
$ lvs
$ df -h
$ lsof +D / /* beware not to kill your box */

 

内核,中断和网络负载

 

$ sysctl -a | grep ...
$ cat /proc/interrupts
$ cat /proc/net/ip_conntrack /* may take some time on busy servers */
$ netstat
$ ss -s

系统内容日志和内核信息

 

$ dmesg
$ less /var/log/messages
$ less /var/log/secure
$ less /var/log/auth

 

crontab 执行任务

 

$ ls /etc/cron* + cat
$ for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done

 

总结:

 在这5分钟时间内,你应该了解到:

   1:有什么东西在运行

   2:存在的故障是否有可能和io/硬件/网络/内核 有联系

   3:有哪些应用是你可以意识到可能存在的故障

 

阅读(3609) | 评论(0) | 转发(6) |
给主人留下些什么吧!~~