MySQLまたはApacheによるメモリ使用量?

MySQLまたはApacheによるメモリ使用量?

私のvpsメモリ使用量
(源泉:fileden.com)

以下は、コアに加えて最大14個のモジュールが追加され、アクティビティやユーザーがいない未完成のcms drupalサイトで私が今日作業しているタスクのスクリーンショットです。

ご覧のとおり、私の限界に達しました。本当に言葉にならないことです。したがって、VPSが最小限で現在の要件に適している必要があるため、Apache、mysql、およびphpのメモリ使用量を制限する必要があります。

私のシステムファイルmy.cnfには他の場所で見たパラメータのリストはありませんが、このファイルは明らかにメモリ使用量を減らします。私のための場合所有。

それでは、Apacheやphp5を削除せずにメモリ使用量を大幅に減らす方法は何ですか?

私はmysqlバージョン5.1.66を使用しています。 innodbのように見え、yabbit.net/mysql.txt変数が表示されます。

答え1

MySQLの設定ではなく、Apacheの設定が原因のようです。現在のMySQL設定は、全体のサイズが50MBを超えてはいけません(通常は低いようです)。

しかし、コメントに投稿したApache設定とVPSが256MBのRAMのみを提供するという事実から、次の設定が見つかりました。

MaxClients       256

Prefork MPMの場合方法このようなマシンには多すぎます。私のDebian Squeeze Webサーバーでは、フォークあたり約20MBの使用量が表示されているため、約15個の接続がシステム上のすべてのメモリを使用していました。あまりにも多くの同時接続を確保してプロセスが中断したり、多くのスワップスペースを使用することは困難ではありません。結果:サーバーが正しく機能しないか、サービス応答が遅くなります。

私はあなたに提供します:

  • たとえば、プリフォーク構成を大幅に縮小します。

    <IfModule mpm_prefork_module>
        StartServers         10
        MinSpareServers      5
        MaxSpareServers      15
        MaxClients           15
        MaxRequestsPerChild  2000
    </IfModule>
    

    同時に、8人以上の訪問者にサービスを提供できないことを受け入れてください(通常はブラウザごとに2つのクライアント接続)。これは、選択したLAMP構成と組み合わせたメモリ量の制限です。

  • PHP-FPMに移行し、小さなプールを設定し、動作しているMPMまたは他のWebサーバー(nginxなど)に移行します。ワーカーMPMは、メモリを共有しないフォークの代わりに共有メモリスレッドを使用します。これにより、より多くの同時訪問者を処理できます。

関連情報