■レンタルサーバ
不具合とその対応
サーバの反応が遅い、ダウンからの復帰後の原因調査の方法などを解説します。
サーバに接続できない
FTPやTELNET、メールやWebなど、全て接続できなくなってしまった。
pingが通らない。又は、pingは通るが接続できないとき、サーバダウンの可能性があります。
(FTPやメールなど何かが繋がる場合はサーバダウンではありません。下の「特定のサービスのみ接続ができない」を参照してください)
-
・大抵はサーバのリセットで再起動することができますのでご依頼ください。
リセットのご依頼の際は、サーバのIPアドレスとお客様のお名前・緊急時の連絡先をお伝えください。
(リセットのみであれば無料です。若干の作業時間がかかることがあります)
サーバがダウンしてしまうとき、何らかのエラーが発生していればログ(/var/log/messagesなど)に記録されるでしょう。
ただ、過負荷によるダウンの場合はログを記録する処理すらできなくなっていることも多くありますので、
これはダウンする前の諸症状に気づかなければいけません。
(特定のサービスのみ繋がらない場合はサーバダウンではなく、その機能だけに異常が発生している可能性があります。
この場合は、Telnetなどでサーバに接続し原因を調べます)
* 原因の調査やメンテナンスも有料で承ります。サポートへご相談ください。
特定のサービスのみ接続ができない
FTPやTELNET、メールなどどれかは繋がるが、どれかが繋がらないなど
・特定のユーザのみ接続を拒否される
-
パスワード自体が間違っているということも考えられますが、
アクセスをコントロールするようなファイルの設定などを確認します。
大抵は man コマンドでその機能を司るコマンドのマニュアルを見るとヒントが書かれています。
多くのエラーは /var/log にあるログに記録されますので、まずログを確認します。
・そのサービス自体の接続を拒否される
-
ファイヤーウォールなどにより拒否されているということも考えられますが、
そのサービスを提供しているコマンドに不具合があるのかもしれません。
また inetd から起動されるサービスは inetd の設定が正しいかを確認します。
サービス | 考えられる主な原因 |
WWW |
Apache(httpd)機能していない CGIなどが不具合を起している ディスク容量が一杯 アクセスが多すぎる |
FTP |
inetdが機能していない TCP wrapperが働いている サーバの負荷が高い |
SMTP |
Sendmailが機能していない ディスク容量が一杯 アクセスが多すぎる サーバの負荷(ロードアベレージ)が高い |
POP |
inetdが機能していない ディスク容量が一杯 |
TELNET |
inetdが機能していない TCP wrapperが働いている |
サーバが勝手に再起動(reboot)してしまう
特に操作をしていないのに、サーバが勝手に再起動(reboot、リセット)することがあります。
負荷の高いサーバで調整があまりされてない場合によく見られる現象で、
原因について /var/log/messages のログに記録されることがあります。
・ログに Out of mbuf clusters と記録されている場合
-
ネットワークバッファがデータの転送量に追いつかず足りなくなったようです。
カーネルのオプション NMBCLUSTERS を追加して再構築をしてください。
これはFreeBSDの初期のバージョンから抱える問題です。レンタルサーバ用のデフォルトのカーネル設定ファイルは RENTAL という名前になっています。
・ログには特に何も記録されていない場合
-
過負荷で処理がしきれないときやメモリを使い切ってしまったりしたときに、
OSがpanicしてしまい自動的に再起動してしまいます。
アクセスを受け付ける量を減らすなどして調整をしてください。
全体的にアクセスが遅い
FTPやTELNET、メールやWebなどどれも遅いとき
・最初の接続だけ遅く、一旦繋がると普通の速さの場合
-
DNS lookupが正常にできていない可能性。
/etc/resolv.conf に書かれているネームサーバは正しいか、/etc/host.conf 書かれている検索順序は正しいか
などを確認してみてください。
identが正常にできていない可能性。
サーバプログラムが接続元を確認するとき、ファイヤーウォールやNATなどの環境から接続された場合はこれができません、
そのため、この手続きがタイムアウトするまで待たされます。タイムアウト時間を短くするなどします。
・ps -aux で負荷大きなプロセスが動いていないか見る
-
動作の重いものがあればそれを排除するなどの対応をします。
・netstat -i コマンドでネットワークを出入りするデータの状態を見る
-
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
fxp0 1500 <Link> 00.90.27.66.c6.18 1414817 1 1384371 2 18408
fxp0 1500 192.168.000 name 1414817 0 1384371 0 18408
lo0 16384 <Link> 1244 0 1244 0 0
lo0 16384 127 localhost 1244 0 1244 0 0
|
「Coll」はコリジョン、「errs」はエラーとなったパケット数です。
コリジョンの数を全てのパケットの数で割るとコリジョン率が出ます。これが1割を越えるとネットワーク的に重い状態と言えます。
・帯域保証値以上に転送量が出ている場合は、それで回線の限界ということもあります。
Webページの表示が遅い
・server-status を表示できるようにhttpd.confを設定し、ステータスを見る
-
Total accesses: 7583448 - Total Traffic: 168.6 GB
CPU Usage: u261.383 s298.844 cu1698.83 cs500.523 - .299% CPU load
8.22 requests/sec - 191.7 kB/second - 23.3 kB/request
92 requests currently being processed, 2 idle servers
WKWWWKWWKWWKWWRRWKWWKWKRDWWWKWKKWKKWWKKWWKWWWWKKR_WWWLKKWWWWWDWW
WWWWKDWW_KKWKWRWWWRWKKKKWWWK....................................
................................................................
................................................................
Scoreboard Key:
"_ " Waiting for Connection, "S " Starting up, "R " Reading Request,
"W " Sending Reply, "K " Keepalive (read), "D " DNS Lookup,
"L " Logging, "G " Gracefully finishing, ". " Open slot with no current process
|
このように「W」「R」「K」などで埋まり空きスロットがない状態だと「待ち」が発生し、なかなかデータが送られてこない状態になります。
メモリやCPUに余裕があれば MaxClient の値を増やし、受け付けるスロットの数を増やします。
余裕がない場合は KeepAlive をOFFにし、無駄に接続を保たれないようにしてスロットの回転をよくします。
「D」が多い場合はDNS lookupに異常があるかもしれませんので、ネームサーバの設定を確認したり HostnameLookups をOFFにします。
・uptime コマンドを実行し、負荷状態(ロードアベレージ)を見る
-
2:34PM up 125 days, 11:54, 1 user, load averages: 2.43, 2.22, 2.17
|
「2.43, 2.22, 2.17」の数値が、過去1分・5分・15分の平均値で、
10を越えるとだいぶ負荷のかかっている状態と言えます。100くらいまで達しダウン寸前状態ということもあるかもしれません。
CGIが過剰に動作しているときは MaxClient を減らすか、CGI自体を動作の軽いものへ交換します。
《サーバ運用ガイドにあるApacheの設定などもご覧ください》
|