という表示が出て、さっぱりサーバが動かなくなった。
原因;プロセスが上限まで使われ、新しいプロセスを立ち上げられない。
解決法:プロセスを消費しているサーバデーモンなどを停止させ、プロセス数を制限する。
現状契約しているサーバで問題が発生。
何やら契約しているVPSサーバに上限プロセス(プロセスの上限といった方がいいのか)が存在するらしい。
お陰であらゆるコマンドが通らない(ssh接続さえも、プロセスの上限に達しているため、sshのプロセスを起動できない)。
そんなの聞いてないよ・・・。
取り敢えず、無理矢理にでも稼働させなければならないので、プロセスを規定値以下になるように調整することにした。
まずサーバ管理会社に頼んで再起動して貰い、更にapacheを落として貰う。
このサーバで動かしているのはweb(apache)サーバとメールサーバ(procmail,sendmail)。
どちらがプロセスを食うかといわれると、勿論apacheなので、今回はapacheのプロセス数をコントロールする。
プロセス数をコントロールするには、httpd.confを編集し、MaxClientsの値を下げる。
この値以上にはプロセスが発生しない。
apache以外の予想総プロセス数+MaxClientsの数が、規定のプロセス数制限に引っかからないようにすると、無事に安定した。
何かを捨てている気がしないでもないけれども。
ここらへん。
--------------------------------
Timeout 100
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
MinSpareServers 8
MaxSpareServers 10
StartServers 5
#ServerLimit 80
MaxClients 30
MaxRequestsPerChild 2000
--------------------------------
今回は正直辟易した。
基本的にレンタルサーバの管理会社がやることは、
top
ps
shutdown
この3つしか基本的に叩かない。
ちょっとでも突っ込んで聞くと
「わからない」
「上位プランに変更を」
と言われる。
やる気なさげに「topというコマンド知ってらっしゃいますか」と言われたときは、嗚呼、世も末だ、と一瞬思った。
相変わらずプロセスの中にZombie Processが存在するし、解決策は未だ提示されていない(これは管理会社の責任)。
メールアカウントを増やす際に必ず容量の圧迫が起こるとか絶対直してくれないし。
ただ、一つだけ非を認めると、「一気に大量のアクセス」はさっきlogを見ることができて確認した。
ご免なさい。
*レンタルサーバ管理会社のアドミンって、どの程度の技術力でなれるんだろうと本気で思った。
ラピッドサイトの料金とプロセス数の上限(大体)。
1万円台のプラン :64プロセス前後
1万~2万円台のプラン :75プロセス前後
2万円台のプラン :150プロセス前後
3万~4万円台のプラン :375プロセス前後
1万円台 :75プロセス前後
2万円台のプラン :150プロセス前後
3万~4万円台のプラン :375プロセス前後
詳しくはrapidsiteに電話して聞いてください。
参考URL
httpd.confによるWebサーバの最適化(全3回)
http://www.atmarkit.co.jp/flinux/rensai/apache2_03/apache03a.html
以下取り敢えずうちのhttpd.conf。
--------------------------------
# Apache configuration file for foobarserver.com
### Section 1: Global Environment
ServerType standalone
ServerRoot "/usr/local/apache"
LockFile /usr/local/apache/logs/httpsd.lock
PidFile /usr/local/apache/logs/httpsd.pid
ScoreBoardFile /usr/local/apache/logs/httpsd.scoreboard
ResourceConfig /dev/null
AccessConfig /dev/null
Timeout 100
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
MinSpareServers 8
MaxSpareServers 10
StartServers 5
#ServerLimit 80
MaxClients 30
MaxRequestsPerChild 2000
Listen 80
Listen 443
#BindAddress *
# Example:
# LoadModule foo_module libexec/mod_foo.so
#
#LoadModule mmap_static_module libexec/mod_mmap_static.so
#LoadModule vhost_alias_module libexec/mod_vhost_alias.so
#LoadModule mime_magic_module libexec/mod_mime_magic.so
#LoadModule negotiation_module libexec/mod_negotiation.so
LoadModule status_module libexec/mod_status.so
#LoadModule info_module libexec/mod_info.so
#LoadModule asis_module libexec/mod_asis.so
#LoadModule speling_module libexec/mod_speling.so
LoadModule rewrite_module libexec/mod_rewrite.so
#LoadModule anon_auth_module libexec/mod_auth_anon.so
#LoadModule db_auth_module libexec/mod_auth_db.so
#LoadModule digest_module libexec/mod_digest.so
#LoadModule proxy_module libexec/libproxy.so
#LoadModule cern_meta_module libexec/mod_cern_meta.so
#LoadModule expires_module libexec/mod_expires.so
#LoadModule headers_module libexec/mod_headers.so
#LoadModule usertrack_module libexec/mod_usertrack.so
#LoadModule perl_module libexec/mod_perl.so
#LoadModule gzip_module libexec/mod_gzip.so
#LoadModule dav_module libexec/mod_dav.so
#LoadModule fastcgi_module libexec/mod_fastcgi.so
#LoadModule auth_mysql_module libexec/mod_auth_mysql.so
#LoadModule auth_pgsql_module libexec/mod_auth_pgsql.so
#LoadModule php4_module libexec/mod_php4-4.3.x.so
LoadModule perl_module libexec/libperl-5.8.4.so
#LoadModule php4_module libexec/mod_php4-4.4.2.so
#ExtendedStatus On
### Section 2: 'Main' server configuration
# ports < 1023, you will need httpd to be run as root initially.
Port 80
User www
Group www
ServerAdmin webmaster@foobarserver.com
ServerName foobarserver.com
DocumentRoot "/usr/local/apache/htdocs"
SSLDisable
SSLNoV2
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
UserDir www/htdocs
# Allow CGI's for a UserDir user
#ScriptAliasMatch /~(.*)/cgi-bin(.*) "/home/$1/www/cgi-bin$2"
# Disable a set of users
#UserDir enabled
#UserDir disabled user1 user2 user3
#
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#
# Order allow,deny
# Allow from all
#
#
# Order deny,allow
# Deny from all
#
#
AllowOverride All
Options Indexes MultiViews SymLinksIfOwnerMatch IncludesNoExec
DirectoryIndex index.html index.htm index.cgi index.php index.shtml
AccessFileName .htaccess
#
# Order allow,deny
# Deny from all
# Satisfy All
#
#---------------------------------------------------------------
# 以下は参照元URLとして許可するドメイン
SetEnvIf Referer foobarserver\.com authoritative_site
SetEnvIf Referer foobarserver\.net authoritative_site
SetEnvIf Referer foobarserver\.info authoritative_site
# リモートからのアクセスを拒否するファイルの種類と制限
order deny,allow
Deny from all
Allow from env=authoritative_site
#----------------------------------------------------------------
以下続く・・・。
0 件のコメント:
コメントを投稿