VPSに問題があります。
VPSを使用してCMSとWebサイトを実行しています。現在、300 MBのメモリ制限があり、制限に近づいています。
低コストを維持するために(私は知っています、メモリを増やすことはそれほど高価ではありません)、しかし私が持っているものを最適化するための解決策を見つければ、より良いでしょう。
私に何ができる?
ありがとう!
メモリを増やすことをお勧めします-より多くのメモリ、より高速なWebサイト:-)しかし、速度が重要でない場合は、すべてのキャッシュサイズを減らし、php memory_limitを8Mに設定し、オペコードキャッシング(APC、eAccelerator)を無効にするか、サーバーとしてRaspberryPiを試してください。 512MBで:-)
私はapache+php + mariadb(mysqld)を使用する小さな256MBのvpsを持っています
単純なワードプレスページのリクエストごとに、一度に20MBのメモリがapacheによって飲み込まれていることがわかりました。それは落ち着きますが、時間の経過とともにスワップスペースに食い込み、すべてをゆっくりとクロールします。mpm_eventとmpm_workerを微調整してスワップの入力を停止する方法があると思いますが、その方法がわかりませんでした。
このような厳しい環境で作業する場合、スワッピングを最小限に抑えるために、何がどのメモリを使用しているかを把握し、すべてを削減することが重要です。
私が行ったことの要約は次のとおりです。調整のために100MBの物理的なヘッドルームを確保できました。これは負荷の高いサーバーではありませんが、アクセス可能(かつ安価)である必要があります。
cmsを新しくインストールして、間違いなくmyisamを使用するか、すべてのテーブルを変更します
apacheでは、mpm_eventおよびmpm_workerではなくmod_mpm_preforkを使用することを選択します(「apachectl-V」はどちらが使用されているかを示します)
maxserverの適切な値を設定します(サーバーと要求の数の低い値から開始して、後処理します)
sshを介して「watchfree」または「top」を実行しながら、負荷がかかっているサーバーをテストします
httpdサーバーの設定を調整し、満足するまで再テストします
私は、メモリの最大値が90%を超えないようにし、負荷がなくなったときに元に戻してから、停止することなく(スワップの使用を開始して)停止しないと確信するのが好きです。
別の回答に記載されているように、php.iniのメモリ設定を確認してください。
また、スワップが大幅に使用され始めたときにメールを送信するようにcronジョブを設定したので、メモリを使用しているものが見つからない場合は、何かを再起動したり、サーバー全体を再起動したりできます。もっと微調整します。
述べたように、これは高負荷の下でうまく機能する環境ではありませんが、コストはあなたにとってより重要かもしれません。
ちょうど私の2ペンスの価値...
私はconcerto49が推奨するようにNginxを検討します。ウェブサイトが1つしかない場合は、Litespeed(www.litespeedtech.com)も検討してください。これらには、サイトを強化するのに十分な無料バージョンがあります。
PHPベースの場合は、使用していないものをすべて削除します。APC / XCacheを使用して、すべてのリクエストを処理します。Nginxにはキャッシュモジュールもあります。これは、リクエストがまだ新鮮な場合に、リクエストごとにPHPをヒットしないようにするのに役立ちます。
それはどのタイプのVPSですか?OpenVZ?Xen?KVM?OpenVZの場合、VSwapまたはバーストメモリがありますか?
どのタイプのCMS/Webサイトを実行していますか?PHPベースですか?Apacheを使用していますか?もしそうなら、nginxを試しましたか?Webサーバーコンポーネントを最適化し、未使用のプロセス/アプリケーションを削除してメモリを削減し、パフォーマンスを向上させることを検討します。