GNU/Linux >> Linux の 問題 >  >> Linux

Apache と PHP でメモリ リークを調査するにはどうすればよいですか?

解決策 1:

<ブロック引用>

/etc/init.d/httpd のリロードを発行するたびにメモリ使用量が低下するため、メモリの問題は apache/PHP から発生していることがわかります

いいえ - それは単に Web トラフィックに関連していることを意味します。ボックスで mysql を実行していることに言及し続けました-おそらくウェブサーバーのデータを管理しています-それはここで簡単に犯人になる可能性があります.あなたが言及していない他のサービスと同様に、Webstack が使用する可能性があります。

<ブロック引用>

各 apache スレッドには 512MB の PHP memory_limit が割り当てられます。

いいえ、そうではありません。平均 7 台、最大 25 台のビジー状態のサーバーが報告されていますが、メモリ グラフは約 25Gb のデルタを示しています。

実際には、基本的な HTTP チューニングからやり直す必要があります。一定の 256 の httpds を実行しているように見えますが、ピーク時の使用量は 25 です。これは単純にばかげています。

<ブロック引用>

実行に時間がかかっているスレッドを終了する必要がある 120 秒の max_execution_time

いいえ - 実行スレッドが PHP インタープリター内にある場合のみ - PHP がブロックされている場合ではありません。

<ブロック引用>

財務モデリングを実行する

(ため息)

Apache、スレッドまたはプリフォークの構成方法、バージョン、PHP の呼び出し方法 (モジュール、cgi、fastcgi)、永続的な接続を使用しているかどうか、ストアド プロシージャを使用しているかどうかの詳細を提供していただければ助かります。

mysql を別のマシンに移動することから始めて、永続的な接続の使用を停止することをお勧めします (現在それらを使用している場合)。メモリ制限を多く設定する スクリプトごとにこれを下げてオーバーライドします。循環参照ガベージ コレクターがインストールされ、構成されていることを確認してください。

解決策 2:

あなたはおそらく今までにあなたの問題を解決しました。サーバーがスワッピング/スラッシングしないようにするための暫定と​​して、cron から次のコマンドを 1 時間ごとに実行します:

#!/bin/sh 
sync; echo 3 > /proc/sys/vm/drop_caches

これが解決策だと言っているのではありません。メモリ リークの実際の原因を調査する際に、動作を維持し、ダウンタイムを最小限に抑える方法にすぎません。

詳細については、こちらをご覧ください。

http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/


Linux
  1. UbuntuLinuxでApacheを使用してPHPcurlモジュールを有効または無効にする方法

  2. MySQL、PHP、Apacheの設定ファイルを見つける方法

  3. CentOS8でFail2Banを使用してApacheとSSHを保護する方法

  1. cPanelサーバーでEasyApacheを使用してApacheとPHPを更新する方法

  2. CentOS7にApacheとPHPをインストールする

  3. Ubuntu 20.04 で Apache を使用して PHP-FPM をインストールする方法

  1. Apacheを使用してUbuntu18.04にLaravelをインストールする方法

  2. CentOS8にNginxとPHP7.3でNextcloudをインストールする方法

  3. CentOS8でPHP7.4を使用してOpenLiteSpeedをインストールおよび構成する方法