*鯖 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 この程度かなぁ **バックアップ -pdumpfs により毎朝 4 時にバックアップを採っています。 -間違ってファイルを削除してしまったり上書きしても当日の朝 4 時の時点までのバックアップがあるので、必要であれば言ってもらえれば適当に回復します。 -また、過去 7 日分, 過去 6 週間分(日曜日のみ), 過去 6 ヶ月分( 1 日のみ), 過去 2 年分(1 月 1 日のみ)のバックアップを残しています。 **作業とかとか この辺は思い出しつつ。 -マシンスペックの改善~ 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 該当地区 兵庫エリア ************************************************************ ★上記の時間帯においてインターネットに接続できない、一部ネットワークの 経路が不安定になるなどのサービス中断が発生致します。 ************************************************************ 夜中にやってくれええええええ。