一覧 検索 最終更新 改名 | ヘルプ | 最終更新のRSS |

memo/鯖 のバックアップソース(No.6)

*鯖

nothing 鯖の設定とか云々書き連ねます。最近負荷がが hidoi 状況なのです。うひー。~
最近突然サーバーが止まりますが、予告なしでメンテしてます。すんません。

#contents

**環境
設置場所が鹿児島って時点で負け組気分です。ヤッタネ。

***回線
NTT西日本 Bフレッツ ベーシック (speedtest.flets で 51Mbps しか出ません)~
%%ぷらら + ダブルルート (IIJ) 固定IP (219.119.223.38)%%~
CyberBB 固定IP (43.244.234.52) -- 3/18〜

***サーバスペック
|CPU|Pentium 4 (Northwood/FSB533) 2.8GHz|
|RAM|PC2700 1GB|
|HDD|ST380011A * 2|

***状況
-PHP + PostgreSQL なページに数十万リクエスト/day
-PHP + MySQL なページに数万リクエスト/day
-数〜数十MBのデータファイル配信 (mp3 や BMS)
-その他普通のレンタルサーバとかでやりそうなこと( Perl CGI とかとか )
-7ドメイン + 数十サブドメイン

あー。あとDNSとメールと ...

-%%Load Average が 1 切りません%% 昼間は切るようになりました
-多分メモリ 1GB じゃ足りない気がします。

**現在の設定

設定とかちょっと主なところだけ。~
今は vmstat やら top やら見つつちまちま調整してます。

***sysctl.conf
 kernel.sysrq=0
 kernel.shmmax=133554432
 kernel.core_uses_pid=1
 net.core.rmem_max=1048576
 net.core.wmem_max=1048576
 net.core.rmem_default=65535
 net.core.wmem_default=65535
 net.ipv4.ip_forward=1
 net.ipv4.conf.default.rp_filter=1
 net.ipv4.tcp_syncookies=1
 net.ipv4.tcp_rmem=4096 87380 1048576
 net.ipv4.tcp_wmem=4096 16384 1048576
 net.ipv4.tcp_mem=1048576 1048576 1048576

***httpd.conf
 # 普通のコンテンツではやっぱ KeepAlive 必要だわ
 KeepAlive on
 MaxKeepAliveRequests 32
 KeepAliveTimeout 3
 # 最初から臨戦態勢
 MinSpareServers 160
 MaxSpareServers 160
 StartServers 160
 MaxClients 160

ちなみに KeepAlive は feena では切ってます。(画像少ないし、残しておくと接続数不足で死ぬんで) あとは mod_gzip やら mod_limitipconn (主に mp3 とか BMS 配信向け)やら入れたり。

MaxClients はこれ以上増やすとスワップで死にます。 (feena アクセスで、 Apache プロセスと同時に PostgreSQL プロセスも増えることを考えれば当然)

***php.ini
PHP Accelerator インストールして設定済み
 #接続数不足で死ぬので、強制 Off
 mysql.allow_persistent = Off
 pgsql.allow_persistent = Off
 pgsql.max_links = 64

この程度かなぁ

**作業とかとか

この辺は思い出しつつ。

-マシンスペックの改善~
Celeron 2GHz から Pen4 2.8GHz へ。ヘボいメモリも交換。 45k 円の出費 _| ̄|○

-Squid~
Squid をインストール。 HTTP アクセラレータモードに設定して、Apache の mod_rewrite でローカル以外の接続を squid ポートへ転送するように設定。~
とりあえずこれで Squid が転送バッファとして働くので、エンドユーザの回線が細くても Apache のプロセスを握り続けることは防げる。資源節約。

-PHP Accelerator~
http://www.php-accelerator.co.uk からダウンロード、 INSTALL ファイルに書かれてる通りにインストールするのみ。[[結果:http://nothing.sh/diarylog/phpa.txt]] 速くなる模様。
-Apache2 +PHP インストール~
VineSeed から Apache2 の RPM 持ってきてインストール。結局 PHP インストールするには prefork しか使えない。 /usr/sbin/apache2 のリンク先を /usr/sbin/apache2.prefork に書き換え。~
それから、 PHPA がエラーを吐くので php.ini で phpa.shm_user と phpa.shm_group を設定してやる。
-プロバイダ変更(PPPoE 複数セッション)~
IIJ バックボーンはなんか帯域制限されてるので(上り8Mbps程度しか出ない)~
…って、コレじゃBフレッツベーシックの意味ねぇよ。ってなわけで変更しました。~
ちょっと頑張れば 30Mbps 以上程度は出るかな、って感じ。

***Apache2 → Apache1 に戻す (2004-03-20 (土) 03:36:49)

時々 Apache のプロセスが暴走してメモリを食い尽くす…その所為で Load Average が 60 越え _| ̄|○

原因を色々探ってて、とりあえず PHP Accelerator が Apache の error_log に大量に notice メッセージを残してたり。
あんまり関係ないかも知れないけど気持ち悪い。公式サイトの Forums も "me too" だらけで結局解決策はない模様。

 [Thu Mar 18 09:18:08 2004] [notice-phpa] Acquiring cache : uid 48 gid 48 perms 666 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] PHPA 1.3.3r2 on linux_i686_glibc2.1.3 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Initialised 16MB cache at 0x40dbc000 with 512 process entries (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Lock thresholds 10/10 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Acquiring cache : uid 48 gid 48 perms 666 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] PHPA 1.3.3r2 on linux_i686_glibc2.1.3 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Initialised 16MB cache at 0x40dbc000 with 512 process entries (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Lock thresholds 10/10 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Acquiring cache : uid 48 gid 48 perms 666 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] PHPA 1.3.3r2 on linux_i686_glibc2.1.3 (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Initialised 16MB cache at 0x40dbc000 with 512 process entries (pid 29628)
 [Thu Mar 18 09:18:08 2004] [notice-phpa] Lock thresholds 10/10 (pid 29628)

しかもログに残る時間は一定。他のログは時間進んでるのに、このメッセージだけずっと同じ時間で表示されてるのでログが過去に戻ってる気分。

とりあえず色々 Apache 2.0.48 がダメくさいので Apache 1.3.29 に戻す。どうせ prefork しか使えないし、メモリ食うみたいだし。
…と、折角苦労してインストールした Apache2 を止めて、 service httpd start

しばらくして、何かパケロスするようになった。あーもー、プロバイダ不調? とか思ってたら、何か /var/log/messages に
 Mar 20 02:34:44 evergreen kernel: ip_conntrack: table full, dropping packet.
 Mar 20 02:34:44 evergreen last message repeated 9 times
 Mar 20 02:34:49 evergreen kernel: NET: 310 messages suppressed.
 Mar 20 02:34:49 evergreen kernel: ip_conntrack: table full, dropping packet.
 Mar 20 02:34:54 evergreen kernel: NET: 211 messages suppressed.
 Mar 20 02:34:54 evergreen kernel: ip_conntrack: table full, dropping packet.

なんじゃこりゃーーー。アタックでも受けてるのか !? と思って色々やってみる。無駄に chkrootkit も掛けてみる。何も無し。

結局、 Apache2 になってから IP 設定した feena.jp の squid 転送で

>
+誰かが feena.jp へリクエスト
+(IPを見て)ローカルからの接続じゃないので feena.jp:81 にリダイレクト
+feena.jp:81 (squid サーバ) にリクエスト
+squid が Apache にリクエスト
+(IPを見て)ローカルなのに外部と勘違いして feena.jp:81 へリダイレクト
+3に戻る

DoS 状態 _| ̄|○ ばかー

w3m が賢く "リダイレクトループだよ" と警告してくれたので発見しました。うひゃー。


***Squidは (2004-03-22 (月) 03:13:55)
10MB 単位の大きいファイルには向かない…。

何か転送途中で突っかかってしまう。そーなるとユーザー側はリロードの嵐。余計負荷が。勉強になった。

あと何か知らないけど CPU 食いまくり。そーゆーもん?


***分割 (2004-04-11 (日) 21:05:55)
結局前の余ったパーツで鯖をもう一台立てました (shadow) 。んでもって、 Squid をそっちで動かし、本鯖上の Squid は停止。

***Apache肥満
どうもApacheを起動したまま放っておくと、太りまくってメモリを圧迫しまくるので、毎日午前 4 時に restart させてみることに。~
どうなるやら。

***Kernel 2.4.26(2004-04-23 (金) 13:18:08)
どうやら 〜2.4.25 のカーネルにはセキュリティーホールがあるらしく、カーネル上げないとマズそうなので、あげ。~
…再起動失敗。

前のプロバイダの接続設定が残ったままでした。ヒャッホウ。


***Apacheログ溢れ(2004-05-12 (水) 01:51:19)
最近どうも apache の調子が悪かったらしく。 5 月入ってからなんですが。
原因判明。
 -rw-r--r--    1 root     root     2147483647 Apr 30 12:05 tab_access_log
一時的にとってたアクセスログが原因でした。

やたらと
 [Tue May 11 23:55:42 2004] [notice] child pid 5449 exit signal File size limit exceeded (25)
とか吐き続けるから、何だろうと思ったら。


***プロバイダメンテナンス(2004-05-12 (水) 11:32:22)
うお繋がらない!とか思ったら
 【フレッツ・サービスメンテナンスのご案内】
 
 平素より、弊社サービスをご利用いただき誠にありがとうございます。
 この度、フレッツ・サービス下記エリアにつきまして、ネットワーク設備の増強工事を
 実施するため、下記の時間帯において断続的に通信の切断が発生致します。 
 
 お客様には、大変ご迷惑をおかけしますが、何卒ご了承頂きたく宜しくお願い申し上
 げます。
 
 尚、メンテナンスの詳細につきましては、下記の通りとなります。
 
 ---------------------------------------------------------- 
   網終端装置の増設によるIPアドレス追加・変更について下記地区にて
   網終端装置の追加作業を行います。 
   工事の詳細は、下記の通りとなります。 
 ---------------------------------------------------------- 
   工事予定日時 5月11日(火) 11:00〜13:00 
   該当地区 富山エリア 
 ---------------------------------------------------------- 
   工事予定日時 5月12日(水) 10:30〜12:30 
   該当地区 鹿児島エリア 
 ----------------------------------------------------------- 
   工事予定日時 5月13日(木) 10:30〜12:30 
   該当地区 福井エリア 
 ----------------------------------------------------------- 
   工事予定日時 5月14日(金) 14:00〜16:00 
   該当地区 兵庫エリア 
 ************************************************************ 
 ★上記の時間帯においてインターネットに接続できない、一部ネットワークの
 経路が不安定になるなどのサービス中断が発生致します。 
 ************************************************************ 

夜中にやってくれええええええ。

(HTML conversion costs 0.015 sec.)