カテゴリー別アーカイブ: Linux

Linux Apacheの設定 [MaxRequestsPerChild]

このエントリーをはてなブックマークに追加
はてなブックマーク - Linux Apacheの設定 [MaxRequestsPerChild]
Share on Facebook
LINEで送る
Share on LinkedIn
Pocket

概要

Web Serverのレスポンスが時間が経つにつれて遅くなる現象に見舞われていた。
でもhttpdをリスタートすると、また早くなる。
そこでmuninをインストールしサーバの状態を監視してみることにした。
その結果、時間経過とともに、iowaitが増え、さらにswapも増えていることが分かった。
レスポンスが遅くなった原因は、おそらく使用メモリが増え続けて、メモリリークのような状態になっていたことだろう。。。
ってことで、apacheの設定をいじって、改善したことをメモ。

MPM(Multi Procesing Module)

  • リクエストの処理部分。
  • preforce, workerなどがある
  • PHPを使うならpreforceがいいとのこと

httpd.confの設定

/etc/httpd/conf/httpd.conf

MPMのpreforkの設定に
MaxRequestsPerChild
がある。
これは、子プロセスが扱うリクエスト数の制限数を設定する。
設定した値までプロセスが存在し続けるようだ。
したがって、メモリの割に大きな値を設定してしまうと、swapの領域までメモリを食い続けてしまうってことらしい。

そこで、この値を少なくすることにした。
とりあえず4000に設定されていたものを1000に変更すると、
swapの領域がかなり減った!!
200とか100に設定している人もいたので、様子を見ながら変更しようと思う。

PHPで作る携帯サイトデベロッパーズガイドを参考に、以下のツールもインストールして速度を向上させた。

Alternative PHP Cache

  • APCと略される
  • PHPのextension
  • 実行コードをキャッシュしてくれる

インストール等は書籍を参考に。。。

これらの設定で、ロード時間も今まで、
最小1秒
だったのが、
最小0.5秒
ぐらいにまで減った。

もっと早くに対策をするべきだった。。。

Linux Munin apacheのグラフ表示

このエントリーをはてなブックマークに追加
はてなブックマーク - Linux Munin apacheのグラフ表示
Share on Facebook
LINEで送る
Share on LinkedIn
Pocket

概要

muninをインストールしてサーバーの状態を監視しようとしたのだけれど、
apacheの状態を取得できなかった。
Aliaseを設定すれば動くようになったことのメモ。

環境

fedora

muninのインストール

yum -y install munin munin-node

他にも設定しないといけないが、ググれば設定はすぐにみつかるので省略。

インストール時に設定ファイルは作成されなかったので
/etc/httpd/conf.d/munin.conf
を作成。
ただし、.htaccessファイルにBasic認証の設定がされている。

原因と対策

server-statusの部分はサーバの状態を
http://サーバのアドレス/server-status
で確認できるようにするための設定。
しかし、
http://サーバのアドレス/server-statusでアクセスすると、他のエラーのページが表示されてしまう状態だった。
そこで、通常の/server-statusでアクセスする部分をAliasで設定すれば、
うまくアクセスできるのではないかと思い、munin.confファイルに追記した。

/etc/httpd/conf.d/munin.conf

Alias /server-status /server-status
Alias /munin /var/www/html/munin
<Location /munin>
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
   Allow from 追加したいip
</Location>

<IfModule mod_status.c>
    ExtendedStatus On
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
</IfModule>

最初の1行のAliasがないとapache部分がちゃんと動いてくれない。

確認

munin-run apache_volume等を実行する。
volume80.value 10
などの値が帰ってくればOK。
volume80.value U
となれば、どこか設定がおかしい。

.lzh 展開

このエントリーをはてなブックマークに追加
はてなブックマーク - .lzh 展開
Share on Facebook
LINEで送る
Share on LinkedIn
Pocket

.lzhファイルを展開するには。。。

下記からファイルをダウンロードしてインストールする

http://cid-4e42a830d9db49ff.skydrive.live.com/self.aspx/Public/packages/lha/lha-1.14iac20050924p1-2.fc8.i386.rpm

コマンド

lha e ****.lzh