web-dev-qa-db-ja.com

Apacheは5分ごとにクラッシュします

私はサーバーの問題に比較的慣れていません。年の初めに始めた私のサイトは、それを管理する能力を超えて成長しています。私は助けが必要です。

最近、共有ホスティング環境からMediatempleの専用仮想サーバーに移動しました。

毎週、DBからデータをフェッチし、last.fmのAPIからデータをフェッチして、情報をTwitterにツイートするスクリプトを実行します。

私のサーバーはVirtuozzoを使用しており、スクリプトを実行すると、Apacheが5分ごとにクラッシュします。 'kmemsize'パラメーターが上限(13mb)に達していることを確認しました。

私は自分の問題に気づきました。 MySQLプロセスは、Apacheが大量の受信リンクを処理する必要がある間(以前のホストのAWSTATSによると、その日の約200 000ページビュー)、長い間開いたままになります。はい、私はこれについてまったく経験がありません。DBの更新を管理する必要がある間、着信リンクが多すぎるサーバーを明らかに強制終了しています。

これが前例です。いくつかの答えが必要です。

1)共有ホスティング環境が5分ごとにApacheをクラッシュさせなかったのはなぜですか?それはうまくいきました、サイトはかなり遅くなりました。明らかに、それは仮想コンテナとkmemsizeの制限でなければなりませんか?

2)ここからどこへ行くの?物理サーバー(仮想コンテナーではない)でも同じ問題が発生しますか?


Mediatempleにもサポートリクエストを送信しました。私は私が得ることができるすべての助けが必要です。

1
Simon

これは、mySQLを調整するのと同じくらい簡単かもしれません。

古いホスト/サーバーには、プレーンなVanillaに対して一意の/etc/my.cnfファイルが含まれている可能性があります。

いくつかの基本的なMySQLモニタリングから始めます-ここで役立つかもしれないいくつかのツールは次のとおりです:

top、mtop、innotop

(Linuxではtopがデフォルトです)mtop -- http://mtop.sourceforge.net innotop -- http://innotop.sourceforge.net

コマンドライン(cli)からMySQL監視ツールを使用することもできます。

mysqladminプロセスリスト/ mysqladmin proc

悲しいことに、多くの人は/ usr/share/mysqlで利用できるデフォルトのテンプレートを使用します

私はそれらをスキップすることを強くお勧めします-それらは古く、次の理由で使用する価値がありません:

一部のOSまたはMySQLバージョンの無効な設定(例:thread_concurrencyやskip-locking)他の設定に対してテストした結果、パフォーマンスがわからない可能性のある巨大な配列変数を追加することは、それらを実行して調整を行った後、疑わしいだけではありません。 mysqlを少なくとも24〜48時間実行してから、次の診断ツールを使用します。

MySQLチューナー(Linuxでwget mysqltuner.plと入力して、chmod755 mysqltuner.plをダウンロードし、。/ mysqltuner.plを実行して実行します;-) mysqlidxchk(wget hackmysql.com/scripts/mysqlidxchk-1.1 chmod 755 mysqlidxchk * mvでインストールします。 mysqlidxchk * mysqlidxchk)次に、次のようにして実行します。(./ mysqlidxchk --general/var/lib/mysql/general.log)これらのインストールについてもサポートが必要な場合は、お知らせください。

PS-これらのほとんどはLinuxのみのスクリプトです-しかし、mySQLサーバーの調整と管理に大いに役立ちます。

ステータスレポート用のmysqlslaやmysqlreportなどの優れたログ解析ツールもあります

たまたまコントロールパネルを使っていませんか?

1
Glenn Kelley

これはかなり古い質問だと思いますが、次のことが役立つと思います。

MySQLサーバーのチューニングの問題である場合、私は使用します http://tools.percona.com 無料のサービスで、登録、ログイン、サーバーの詳細を入力するだけで、必要な設定が提供されます。 my.iniファイルに組み込まれます

チューニング後、20分かかっていたインポートを7秒でフラットに実行できるなど、パフォーマンスの向上が見られました。

0
Sudhir

vzctl set 101 --kmemsize 2211840:2359296 --save

それを試してみてください、それはkmemsizeを増やします

0

VZテクノロジーの仕組みは、さまざまなリソースに制限を課します。 Beancounterがメモリ制限を超えていることを示している場合は、いくつかのオプションがあります。

  1. より多くのリソースを持つようにホスティングパッケージをアップグレードします。
  2. Apacheをlighttpdやnginxなどの軽量Webサーバーに置き換えます。
  3. 付属のmy-small.cnfファイルを参照して、使用するリソースが少なくなるようにmysqlを構成します。
  4. 使用するメモリが少なくなるようにアプリケーションを構成します(PHPのmemory_limitなど)。

さまざまな小さなVPSオプション用に軽量のLAMPのようなスタックを構成する方法を示すさまざまなチュートリアルがあります。

0
sybreon