Web服务器的急救措施

Author: 翁建元 Date: 2001年 38期

?牐牨嗾甙矗篧eb服务器一旦发生异常,任何一名网管都希望在最短的时间内解决问题,让我们来看看高手是如何做的,从中我们可以学到一些基本的技巧。
  #1?牐?1.服务器响应缓慢
  ?牐犎绻衿飨煊?缓慢,需要做的第一件事情就是判断问题来自服务器还是网络,有一个工具就是Uptime软件。
  ?牐燯ptime会显示服务器的平均负载,如果最后的这个数字高于2或者3,问题的原因就是一些进程占用系统太多资源。如果这个数字不是很高,你就需要考虑网络的因素了。
  ?牐牳涸毓呤笔褂胻op命令来确定哪些进程在消耗系统资源。
  ?牐爐op命令缺省显示10条进程,当然你可以使用top N来指定需要查看的进程数。
  ?牐牳酉晗傅慕塘斜砜梢允褂胮s -auxw命令。
  ?牐牨冉蟇eb进程的“硬”限制(Apache编译时的限制)和“软”限制(httpd.conf的限制),如果两者的数字接近,那么你就要考虑升级硬件或者重新编译Apache了。
  #1?牐?2.未授权登录
  ?牐犎绻P挠蟹欠ㄓ没Т橙胂低常罴虻サ陌旆ň褪怯脀命令来检查。
  ?牐犎绻娴目吹接蟹欠ㄓ没г谀愕南低成希梢粤⒓磌ill他的进程,例如用vipw命令把他的口令修改为“*”或者把shell改为/sbin/nologin。
  #1?牐?3.服务不能启动或者崩溃
  ?牐犎绻鸚eb服务器不能启动或者启动时崩溃,就需要使用apachectl命令来找原因。首先用apachectl configtest命令检查httpd.conf的合法性。但是apachectl并不是万能的。如果问题依然不能解决,我们就应该检查错误日志。另外,用apachectl检查/var/run/httpd.pid文件来找到原来的进程,如果进程号不同,则apachectl stop命令不会工作。在这种情况下就需要使用ps命令来kill对应的进程。
  #1?牐?4.网络检测
  ?牐牪檎乙蛭缥侍庖鸬脑蚴保谝桓黾虻サ拿罹褪莗ing。
  ?牐犎绻鹥ing的结果看起来很正常,或许就需要使用比较大的包来试一下,ping的缺省包大小为56字节,我们用-s指定包大小为2048字节来试一下。采用大的包之后,返回时间延长很正常,但是非常长的时间返回或者包丢失就显示网络有问题了。
  #1?牐?5.交叉信号
  ?牐犎绻骋煞衿骱徒换换涞耐缗渲糜形侍猓梢圆捎胣etstat -finet命令来显示打开的端口以及连机的外部服务。
  ?牐犎绻愕姆衿髟獾焦セ鳎突嵯允灸诤说哪诖媸褂贸#梢圆捎胣etstat的-m参数来查看。
  ?牐犎绻惴⑾謍ttpd的负载不是很重,但是网络资源占用的内存还是很大的话,可以考虑关闭一些服务和端口。
  #1?牐?6.网络问题
  ?牐犎绻绶⑸宋侍猓托枰褂胕fconfig命令来检查网卡是否正常。这个命令会显示网卡的IP地址、掩码、双工、速率等。
  ?牐牫<奈侍馐峭ǖ乃俾驶蛘咚ど柚煤徒换换丝诓灰恢隆L乇鹗巧柚昧恕癮utosense”选项,但是却没有成功,可以采用ifconfig down eth0 [options]来关闭。
  #1?牐?7.权限问题
  ?牐犛行┫∑婀殴值奈侍夂芸赡芾醋悦挥惺S嗫占洹?梢圆捎胐f命令来检查剩余的硬盘空间。一个简单的例子,就是PHP的session无效了,原因就是写入session的文件系统/tmp已经满了。
  ?牐犛行┪侍庠蚴敲挥猩柚煤萌ㄏ蓿<奈侍馐敲挥形狢GI脚本设置x权限,没有为一些目录设置rx权限。
  #1?牐?8.常见的怀疑对象
  ?牐犎绻形侍夥⑸涫档谝患戮陀Ω檬羌觳橄低橙罩?/var/log/messages。
  ?牐犎绻行┤罩疚募荒茉?/var/log/目录找到,可以查看/etc/syslog.conf的配置。
  ?牐牰杂贏pache来说,需要检查[apache_dir]/logs/error_log来确定不能启动的原因。
  ?牐犚陨鲜潜收呤褂肳eb服务器应急措施的一些个人经验,希望能起到一些抛砖引玉的作用。