php + apache のメモリ量をおさえる
php + apache のメモリ量をおさえる
「/proc/(pid)/status」のメモリサイズからメモリ消費量をリストアップするスクリプトを準備した。 「サーバ/インフラを支える技術」に載っている、id:naoyaさんの共有しているメモリのサイズを計算するスクリプトとあわせて、エクセルに落とし込んでごにょごにょと計測してみる。 http://d.hatena.ne.jp/naoya/20080212/1202830671 http://archive.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html [www]~ $ cat memory_size.sh #!/bin/sh GREP="/bin/grep" AWK="/bin/awk" PRINTF="/usr/bin/printf" if [ $# -lt 1 ]; then echo "usage: ${0} [pid .
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基本設定 まずは基本的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp
株式会社えむぼま CTO 高見禎成 ■swapさせずに最大プロセス数にせよ! WWWサーバが最大パフォーマンスを出すには 1) SWAPさせないで 2) 最大プロセス数に設定する ことが最大の条件です。 他にapacheのhttpd.confでHostNameLookups offにしてログ記録時の名前解決をなくす等細かい積み重ねはいくつかありますが、最大のポイントは上記2条件でしょう。 ■最大プロセス数は揃えよ! SWAPさせない最大プロセス数をいくつにするかはこの後見ていきますが、どの値にするにせよapacheとtomcatとDBの最大プロセス数は揃えましょう。 apacheのMaxClietnsは標準で255、tomcatのMaxThreadsは標準で150、MySQLのmax_connectionsは標準で100です。 apacheが2台でMySQL 1台に接続しているなら、MyS
へんじがない。ただのポンコツのようだ。 ポンコツが今日も持ち場でガンバリつつ、 楽しく生きていくための備忘録ブログ。ぬわーーっっ!!2005年7月から絶賛「更新」中! 【この記事の所要時間 : 約 9 分】 Apacheの同時接続数(MaxClients)をどのように設定するのがいいのか調べた。 Apacheのプロセス数を制限するためのディレクティブが「MaxClients」で、このディレクティブには、同時に接続できるクライアント(厳密にはセッション)の数を指定しなければならない。 ●まずはApacheドキュメントを確認しよう Apacheのドキュメントでは、以下のように定義されていた。 MaxClients ディレクティブ 説明: リクエストに応答するために作成される子プロセスの最大個数 構文: MaxClients number デフォルト: 詳細は使用法をご覧下さい。 コンテキスト:
ここ3日間ぐらい超絶な重さだったのはサーバに物理的トラブルが発生したからではなく、単純に閲覧者数が満員御礼となり、各時間で倍増したためです。LoadAverageはひどいときで15分間の平均値「27.1」程度。瞬間最大風速だともっと高いです……明らかにまずい。 というわけで、Apacheのデフォルト設定で今までは大丈夫だったのですが、ついに高負荷サイト用の設定に変更せざるを得なくなりました。 そのため、実際に行った対処方法は以下の通り。1日30万PV近い動的サイトの高負荷を緩和させる方法として参考になれば幸いです。 まず大前提として、既にDNS逆引きや.htaccessの余計な読み込みなどは停止させていました。下記ページに書いてあることは実行済み。 @IT:Apacheパフォーマンス・チューニングの実践(1/2) この状態で負荷が15分平均で「27」になっていたわけです。 また、LoadA
Apache Tomact5.5 連携のチューニングを行いました。 PB-Lab のApache - Tomcat の連携部分でコネクションキューがタイムアウトせずにたまっていたようです。 # netstat -an | grep 8009 でタイムアウトしていないコネクションが溜まっていました。 早速設定を確認し/opt/java/tomcat5.5/conf/server/xml を修正しました -------------------------- server.xml ○修正前 -------------------------- ○修正後 AJP/1.3 の Connecter に connectionTimeout と keepAliveTimeout を設定してみた。 keepAliveTimeout が設定されていない場合は connectionTimeout
先日より続いているアクセス不具合についてチューニング(というほどのものではありませんが)を実施しました。何回か報告する機会がありそうなのでとりあえず「その1」に。 不具合に関連する事象で把握できているのは次の3点です。 Apache プロセスのメモリが増加し続け(メモリリーク)、1日で数百MBに膨れ上がる 何らかの契機にレスポンスが突然遅くなる(お昼休み等、アクセスが集中すると×?) Apache を再起動すればアクセスは正常になる チューニング関連の記事を調べた結果、下記の2つのディレクティブについて httpd.conf に設定することにしました。 MaxRequestsPerChild これは個々の子サーバが稼働中に扱うリクエスト数の上限で、このディレクティブに設定された値を超えると子プロセスは終了(再起動)します。デフォルトは 0(=子プロセスを終了しない)ですが、現在は 5000
Apache + mod_perl の場合、httpd.conf でいろいろと気をつけるべき点があるのですが、まとめてみました。ちなみに本サーバの設定値は、 サーバスペックが Pentium 4 2.8GHz HT動作 / RAM 2GByte な環境で、Amazon Search が喰うメモリは mod_perl 動作で 1 httpd あたり 10〜40MByte 程度。サーバライブラリがある条件下でメモリーリークするので、最大で httpd は 100Mbyte 程度まで肥大。 という条件下で KeepAlive Off Timeout 60 MinSpareServers 10 MaxSpareServers 10 StartServers 10 MaxClients 50 MaxRequestsPerChild 50 という設定値になっています。各パラメータの値の意味を説明します
こんにちは。ビーブレイクシステムズの木下です。「第7回:Apache+SSL環境を構築しよう!」はSSLのメカニズムについて解説しました。今回は、Apacheの基本的な設定・パフォーマンスチューニングのポイントについて解説します。 Apacheは、httpd.confというテキストファイルに「ディレクティブ(命令、コマンドの意)」と呼ばれる専用の命令を記述することで設定します。標準Apache配布に同梱されているディレクティブだけで約330もあります。非常に数が多いので、最初からすべても覚える必要はありません。必要に応じて1つ1つ理解していきましょう。 今回は、設定ファイルの書き方や代表的なディレクティブをいくつか紹介します。ぜひ皆さんも手を動かして、試してみてください。 Apache設定ファイルの構文は非常に単純で1行に1つのディレクティブから構成されています。はじめにディレクティブを記
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く