Linuxシステムが使用中の場合、コンピュータが非常にカードになり、php-cgiプロセスがCPUを占有していることがわかり、占有率は100%に達しました。この原因は何ですか?以下の小シリーズでは、php-cgiが100%のソリューションを占めるLinuxシステムを紹介します。
Webログのディレクトリ/home /hosts_log
ログ・ファイルを持って対応するウェブサイトのID
のphp-cgiのログディレクトリは/usr /local /php_fcgi /ログ
php-fpm.log
slow.log
ログファイルを見ることで基本的に問題は解決します。もちろん問題ではない場合、ウェブサイトはハッキングされてphp ddosファイルをアップロードします。あなたはそれがプログラムの問題であるかどうかをチェックすることができます時にはfile_get_contents関数を使用すると、CPUが100%になることがあります。
php.iniには、PHPスクリプトの最大実行時間を設定するパラメータmax_execution_timeがありますが、php-cgi(php-fpm)ではこのパラメータは機能しません。 PHPスクリプトの最大実行時間を制御できる実際のパラメータは、php-fpm.conf設定ファイル内の次のパラメータです。
単一のリクエストを処理するまでのタイムアウト(秒単位)。ワーカープロセスは終了します。
max_execution_timeオプションが何らかの理由でスクリプトの実行を停止しない場合に使用する必要があります。
‘オフ’
"値名=< request_terminate_timeout> 》 0s“ /value”
デフォルト値は0秒です。これはPHPスクリプトが実行され続けることを意味します。したがって、すべてのphp-cgiプロセスがfile_get_contents()関数内で動かなくなると、Nginx + PHP WebServerは新しいPHP要求を処理できなくなり、Nginxは "502 Bad Gateway"をユーザーに返します。このパラメータを変更してPHPスクリプトの最大実行時間を設定する必要がありますが、緩和策は効果的ではありません。たとえば、 "value name = request_terminate_timeout" 30s "/value"に変更すると、file_get_contents()の実行が遅くなり、150のphp-cgiプロセスが毎秒5回しか発生しなくなります。リクエスト、WebServerでは、< 502 Bad Gateway>を回避することも困難です。
完全に解決するには、file_get_contentsを直接使用する習慣を変更するしかありませんが、わずかに変更し、タイムアウトを追加し、次のようにHTTP GETリクエストを実装します。問題がある場合は、次のコードを関数にまとめることができます。
" Php
$ ctx = stream_context_create(array(
‘ http’ => array(
‘ timeout’ = "1 //タイムアウトを設定)秒数
)
)
);
file_get_contents(' http://www.111cn.net/'、 0、$ ctx) );;
? 》
もちろん、HTMLページがdedecmsのように生成された場合、CPUも100%になります。
Linux php-cgiプロセスはここで紹介されたCPUへの解決策の100%を占めます、抗ウイルス治療を必要とする中毒の可能性があります。
Linuxシステムにはダウンタイムが発生することがあります。これはクラッシュと呼ばれるものです。強制再起動によってシステムがクラッシュする場合は、以下のシリーズあなたがダウンしている場合に再起動する方
Linuxシステムシステムが危険にさらされている場合は、zabbixテレグラムアラームメカニズムを使用して自動的に電子メールをユーザーに送信できます。この記事では、L
Linuxシステムでwindowsファイルを開くと^ M文字が表示されますが、これは読み取りには影響しませんが、削除できるのであればより良いです。次の小さなシリーズで
システムはログファイルの内容を長期間クリーンアップする必要がありますが、ログの内容を消去するのではなく、不注意でログファイルが削除されることがあります。実際には、削除さ