障碍应对系列:Apache

以下是在运行Apache时,在故障发生时需要确认的要点列举:

确认进程数量

确认Apache进程是否已经启动。
如果存在配置错误,则即使发出启动命令,有时也可能导致进程未能启动,
如果在发出启动命令后没有仔细阅读消息并继续操作,
有时可能导致进程未能启动。(这不是故障而是操作失误)

ps u -C httpd |sed -e '1d' |wc -l
10

确认CPU使用率

查看CPU的使用率。
首先确认[% idle]的值是否较高(数值越高表示资源较空闲),
然后确认其他数值是否较低。如果数值较高,则进一步通过[Top]等方式进行调查。

需要对比与正常时的数值来确认是否正常,所以需要知道正常时的数值。
也可以查看像Zabbix这样的监控系统来进行资源监控。

sar -u 1 100
6Linux 2.6.32-431.3.1.el6.x86_64 (vagrant-centos65.vagrantup.com)   2015年05月14日   _x86_64_    (1 CPU)

22時57分49秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
22時57分50秒     all      0.00      0.00      0.00      0.00      0.00    100.00
22時57分51秒     all      0.00      0.00      0.99      0.00      0.00     99.01
22時57分52秒     all      0.00      0.00      0.00      0.00      0.00    100.00
22時57分53秒     all      0.00      0.00      0.00      0.00      0.00    100.00
22時57分54秒     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.20      0.00      0.00     99.80

确认内存使用量

确认内存使用量。(有两种选择。)
因为需要与正常情况下的数值相比较来确认是否正常,所以需要知道正常情况下的数值。
也可以通过像Zabbix等监视系统进行资源监控来查看。

如果想要每秒检查一次内存使用量的变化,可以这样做

※可以改变,但需要进行计算

sar -r 1 100
Linux 2.6.32-431.3.1.el6.x86_64 (vagrant-centos65.vagrantup.com)    2015年05月16日   _x86_64_    (1 CPU)

15時44分35秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
15時44分36秒    498300    105276     17.44     13408     40436     66752      3.59
15時44分37秒    498324    105252     17.44     13408     40436     66752      3.59
15時44分38秒    498324    105252     17.44     13408     40436     66752      3.59
15時44分39秒    498324    105252     17.44     13408     40436     66752      3.59
15時44分40秒    498324    105252     17.44     13408     40436     66752      3.59
Average:       498319    105257     17.44     13408     40436     66752      3.59

※ 实际内存使用量 = 已使用内存 – ( 缓冲区使用量 + 缓存使用量 )

    • kbmemfree: 物理メモリの空き容量

 

    • kbmemused: 使用中の物理メモリ量

 

    • %memused: 物理メモリ使用率

 

    • kbbuffers: カーネル内のバッファとして使用されている物理メモリの容量

 

    • kbcached: カーネル内のキャッシュ用メモリとして使用されている物理メモリの容量

 

    • kbswpfree: スワップ領域の空き容量

 

    • kbswpused: 使用中のスワップ領域の容量

 

    %swpused: スワップ領域の使用率

如果想要像top一样确认当前的内存使用情况。

不需要进行计算,只需要确认当前的状态。

watch -n 1 free -m
Every 1.0s: free -m                                                     Sat May 16 18:57:52 2015
             total   used       free     shared    buffers     cached
Mem:           589        110        479          0         13         43
-/+ buffers/cache:         53        535
Swap:         1224          0       1224

※ 实际内存使用量 = [free]列中[-/+ 缓冲/缓存]的值
※ 上述以MB为单位。

查看磁盘使用量

确认磁盘使用量。确认[使用%]。
如果磁盘使用率很高,可能会触发监控报警,
如果没有进行资源监控(磁盘),最好还是先确认一下。
有时候在某些操作中会创建临时文件,可能会把磁盘填满。

dh -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       7.9G  1.2G  6.4G  15% /
tmpfs           295M     0  295M   0% /dev/shm
vagrant         112G   45G   68G  40% /vagrant

查看错误日志

如果正常启动时遇到问题,首先要检查错误日志,确保没有产生异常日志。如果输出了”crit”、”alert”、”emerg”等高于”error”级别的日志,则立即向Google老师提问。

more /var/log/httpd/*errorlog
[Thu May 14 22:45:28 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu May 14 22:45:34 2015] [notice] Digest: generating secret for digest authentication ...
[Thu May 14 22:45:34 2015] [notice] Digest: done
[Thu May 14 22:45:34 2015] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations

确认conf

根据经验,在config中即使显示 [Syntax OK],如果SSL证书的路径有误,Apache有时也无法启动。

$ service httpd configtest
Syntax OK
广告
将在 10 秒后关闭
bannerAds