目次
興味があるかもしれない記事:
ホームページ バックエンド開発 PHPチュートリアル Linux での php-fpm プロセスの多すぎによるメモリ枯渇の問題の解決方法の詳細な説明

Linux での php-fpm プロセスの多すぎによるメモリ枯渇の問題の解決方法の詳細な説明

Jul 07, 2018 pm 05:55 PM
fpm linux php メモリ プロセス

この記事では、Linux で php-fpm プロセスが多すぎることによって引き起こされるメモリ不足の問題を解決する方法を主に紹介します。必要な友人は参考にしてください。

最近、Linux サーバーとデータベースが私の個人ブログのサービスは頻繁にハングアップするため、正常にアクセスする前に再起動する必要があり、これが非常に不快だったので、問題の解決に着手して時間とエネルギーを解放することにしました (私は望んでいませんでした)。頻繁に問題が発生し、手動で再起動する必要がありましたが、これは面倒で時間がかかりました)。

問題を分析する

問題を発見したら、まず free -m コマンドを使用して現在のサーバーを確認します。実行ステータス:

サーバーのメモリが 2G であることがわかりますが、現在利用可能なメモリは 70M しか残っておらず、メモリ使用率は 92% にもなっています。メモリ使用量が多すぎる可能性が高く、データベース サービスがハングアップします。

引き続き詳細を確認するには、top コマンドを使用します。

次に、コマンド出力にリストされているプロセスの詳細を確認します。列 10 のメモリ使用率に注目してください:

CPU 使用率は高くなく、CPU の問題も除外されていることがわかります。データベース サービスが 15.2% を占めていることがわかります。メモリの使用量が高すぎると、データベース プロセス (最も多くのメモリを消費するプロセス) が混雑してサービスがハングアップするため、確認する必要があります。メモリ使用量の詳細。メモリを多く消費するプロセスはどれですか?

使用コマンド:

ps auxw|head -1;ps auxw|sort -rn -k4|head -40
ログイン後にコピー

メモリを最も多く消費する上位 40 のプロセスを表示:

4 番目の列のメモリ使用率を見ると、mysql データベース サービスに加えて、php-fpm サービス プールが多すぎるサブプロセスを開いてメモリの半分以上を占有していることがわかりました。問題は次のとおりです。が見つかり、問題の解決に着手しました: コントロール php の設定 - fpm プロセス プール プロセスの数。

問題の解決

さまざまな検索方法を通じて、pm.max_children# を設定することで php- を制御できることがわかりました。 ## 属性。fpm 子プロセスの数。まず、php-fpm 設定ファイルを開いてコマンドを実行します:

vi /etc/php-fpm.d/www.conf
ログイン後にコピー

pm を見つけます。 max_children フィールドを見つけて、その値が大きすぎることを確認します:

図に示すように、

pm.max_children の値は 50 です。各プロセスはメモリの 1% ~ 2.5% を占有しており、合計するとメモリの大部分を消費するため、その値を減らす必要があります。ここではブロガーは 25 に設定しています。同時に、次の 2 つの属性を確認します。

pm.max_spare_servers: この値は、アイドル プロセスの最大数を保証することを意味します。アイドル プロセスがこの値より大きい場合は、それらをクリーンアップします。 pm.min_spare_servers:アイドル プロセスの最小数を保証します。アイドル プロセスがこの値より小さい場合は、新しい子プロセスを作成します。

これら 2 つの値はどちらも

pm.max_children## より大きくすることはできません。 # 値。通常、pm.max_spare_servers 値は、pm.max_children 値の 60%、つまり 80% に設定されます。 #最後に、php-fpmを再起動します

systemctl restart php-fpm
ログイン後にコピー

メモリ使用量を再度確認します。メモリ使用量は大幅に削減されています:

メモリ使用量を何度も観察した結果、この改善によりサーバーのメモリ リソースの消費が大幅に軽減されたことがわかりました。

ps: php-fpm によって開始されたプロセスの数と各プロセスのメモリ制限を確認します

1. コマンドを使用して確認します。サーバー上で開かれているプロセスの総数。php-cgi プロセスはいくつありますか。

 ps -fe |grep "php-fpm"|grep "pool"|wc -l
ログイン後にコピー

2。処理に使用される php-cgi プロセスの数を確認してください。 tcp リクエスト

#

 netstat -anp|grep "php-fpm"|grep "tcp"|grep "pool"|wc -l
ログイン後にコピー

##3. Linux nginx php 環境では、各 php-fpm プロセスのメモリ制限

##設定方法:

php-fpm.conf設定ファイルを編集php_admin_value[memory_limit] = 128M (サーバー上の設定ファイルは/にあります) etc/php5/fpm/pool.d/www.conf このファイルは php-fpm.conf に含まれています) 次の数値は自由に変更できます: 32M、64M、128M、256M、512M この設定は次のように記述できます。サーバーのメモリ サイズとニーズに合わせて変更し、php-fpm サービスをロードします。

概要

上記は、エディターが紹介した、Linux での php-fpm プロセスが多すぎることによって引き起こされるメモリ枯渇の問題に対する解決策です。ご質問がございましたら、メッセージを残してください。すぐにご返信させていただきます。また、php 中国語 Web サイトをサポートしていただきありがとうございます。

興味があるかもしれない記事:

php でチェックイン機能を実装するメソッドの例の詳細な分析

php Linux での -fpm パラメーター 構成の導入とパラメーターの最適化手順の詳細な説明

# Laravel でのデータ移行とデータ入力の詳細な説明

##

以上がLinux での php-fpm プロセスの多すぎによるメモリ枯渇の問題の解決方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション Apr 04, 2025 am 10:48 AM

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

See all articles