PHP-CGI処理CPU100%とfile_get_contents関数の関係の解析
その後、追跡を通じて、この種の状況の発生は PHP の file_get_contents() 関数と密接に関係していることがわかりました。
大規模および中規模の Web サイトでは、HTTP プロトコルに基づく API インターフェイス呼び出しが一般的です。 PHP プログラマーは、URL の返されたコンテンツを取得するために、シンプルで便利な file_get_contents("http://example.com/") 関数を使用することを好みますが、Web サイト http://example.com/ の応答が遅い場合は、file_get_contents(. " ) は常にそこでスタックし、タイムアウトしません。
php.ini には、PHP スクリプトの最大実行時間を設定できるパラメータ max_execution_time があることはわかっていますが、php-cgi (php-fpm) では、このパラメータは有効になりません。 PHP スクリプトの最大実行時間を実際に制御できるのは、php-fpm.conf 設定ファイル内の次のパラメータです: ワーカー プロセスが終了するまでの単一リクエストの処理のタイムアウト (秒単位)
である必要があります。 'max_execution_time ' ini オプションが何らかの理由でスクリプトの実行を停止しない場合に使用されます
'0s' は 'off' を意味します
完全な解決策を達成するには、PHP プログラマーが file_get_contents("http://example.com/") を直接使用する習慣を取り除くことができますが、それをわずかに変更し、タイムアウトを追加し、次のコードを使用します。メソッド HTTP GET リクエストを実装します。それが面倒な場合は、次のコードを自分で関数にカプセル化することもできます。
コードをコピー コードは次のとおりです:
$ctx = stream_context_create(array(
' http' => array(
'timeout' => 1 //タイムアウトを秒単位で設定します
)
)
);
file_get_contents("http:// 例。 com/", 0, $ctx);
?>
まず、top コマンドを使用して、CPU 使用率が高い php-cgi プロセスを確認します。
コードをコピー コードは次のとおりです:
top - 10:34:18 up 724 days, 21:01, 3 ユーザー、負荷平均: 17.86、11.16、7.69
タスク: 合計 561、実行中 15、スリープ 546、停止 0、ゾンビ 0
CPU: 5.9%us、4.2%sy、0.0%ni、 89.4%id 、0.2%wa、0.0%hi、0.2%si、0.0%st
メモリ: 合計 8100996k、使用済み 4320108k、空き 3780888k、バッファー 772572k
スワップ: 合計 8193108k、使用済み 50776k、 332k 無料、412088kキャッシュされた
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
10747 www 18 0 360m 22m 12m R 100.6 0.3 0:02.60 php-cgi
10709 www 16 0 359m 28m 17m R 96。 8 0.4 0 :11.34 php-cgi
10745 www 18 0 360m 24m 14m R 94.8 0.3 0:39.51 php-cgi
10707 www 18 0 360m 25m 14m S 77.4 0.3 0:33.48 php-cgi
10782 www 20 0 360m 26m 15m R 75.5 0.3 0:10.93 php-cgi
10708 www 25 0 360m 22m 12m R 69.7 0.3 0:45.16 php-cgi
10683 www 25 0 362m 28m 15m R 54.2 0.4 0: 32.65 php- cgi
10711 www 25 0 360m 25m 15m R 52.2 0.3 0:44.25 php-cgi
10688 www 25 0 359m 25m 15m R 38.7 0.3 0:10.44 php-cgi
10719 www 25 0 360m 26m 16m R 7.7 0.3 0 :40.59 php-cgi
コードをコピーしますコードは次のとおりです:
strace -p 10747
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6] 、[6]、[]、{15, 0}) = 1 (出力 [6]、左 {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0})
poll([ {fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6 ], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15) , 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select(7, [6], [6], [], {15 , 0}) = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0) = 0 (タイムアウト)
select( 7, [6], [6], [], {15, 0}) = 1 (出力 [6]、左 {15, 0})
poll([{fd=6, events=POLLIN}] , 1, 0) = 0 (タイムアウト)
なら、file_get_contents() の結果として問題が解決されたことを確認できます。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









7月28日の当サイトのニュースによると、海外メディアTechRaderは、富士通が2027年に出荷予定の「FUJITSU-MONAKA」(以下、MONAKA)プロセッサを詳しく紹介したと報じた。 MONAKACPUは「クラウドネイティブ3Dメニーコア」アーキテクチャをベースとし、Arm命令セットを採用しており、AIコンピューティングに適しており、メインフレームレベルのRAS1を実現できます。富士通は、MONAKAはエネルギー効率と性能の飛躍的な向上を達成すると述べた。超低電圧(ULV)技術などの技術のおかげで、CPUは2027年には競合製品の2倍のエネルギー効率を達成でき、冷却には水冷が必要ない; さらに、プロセッサのアプリケーションパフォーマンスが相手の2倍に達することもあります。命令に関しては、MONAKAにはvectorが搭載されています。

IntelArrowLake は、LunarLake と同じプロセッサ アーキテクチャに基づいていると予想されており、つまり、Intel の新しい Lion Cove パフォーマンス コアが経済的な Skymont 効率コアと組み合わされることになります。

6 月 1 日のこの Web サイトのニュースによると、ソースの @CodeCommando が本日ツイートし、Computex2024 イベントでの AMD の今後のプレゼンテーション資料のスクリーンショットを共有しました。ツイートの内容は「AM4 は決して死ぬことはない」であり、添付の写真には 2 つの新しいものが示されていました。 Ryzen5000XTシリーズプロセッサ。スクリーンショットによると、次の 2 つの製品が示されています。 Ryzen95900XTR Ryzen95900XT は、AMD の Ryzen95950X よりもわずかに遅いクロック速度を持つ、比較的ハイエンドに位置する新しい 16 コア AM4 プロセッサです。 Ryzen75800XT AMD の既存の Ryzen75800X プロセッサの高速バージョンです。両方のプロセッサのクロックは最大 4.8G です。

第 13 世代と第 14 世代のプロセッサでは、ゲームのクラッシュ、ブルー スクリーン、コンピューターの自動再起動などの障害が発生していましたが、以前は nvidia のグラフィック カードが原因であると考えられていましたが、最近ではインテルのプロセッサが原因であることが判明しました。マザーボードと BIOS システムのメーカーは、第 13/14 世代プロセッサの安定性の問題を非難しました。 Intel も解決策を提案しています。以下のエディターで見てみましょう。第13世代および第14世代Coreプロセッサーの電圧、周波数、消費電力、安定性に関する600および700シリーズのマザーボードのBIOSの設定オプションが誤って設定されているか、設定値が公式の範囲外である可能性があります。インテルによって許可されているため、プロセッサーの動作が不安定になるか、そのリスクが高まります (下図を参照)。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

8月22日の当サイトのニュースによると、Xプラットフォームユーザーの포시포시さん(@harukz5719)は、Intelが公式WebサイトのDESIGN-iNTOOLSstoreにLGA9324-OKS-APプラットフォームの電源テストに適したアダプタボードを2枚掲載していることに気づいた。 ▲REDバージョンに加えてBLUバージョンのアダプターボードもインテルはこれら2製品の説明で、LGA9324-OKS-APOakStreamプラットフォームがDiamondRapidsをサポートしていると書いており、これはXeon 6以降の次世代Xeonパフォーマンスコア「GraniteRapids」の存在を明確に裏付けています。プロセッサと対応するプラットフォーム。 DiamondRapids プロセッサーと OakStream プラットフォームに関する最新情報

Inteli5-12600 以降の CPU、i5-13400 以降の CPU には、「大きいコアと小さいコア」のスケジューリングの問題により、P コア パフォーマンス コア (大きいコア) と E コア エネルギー効率コア (小さいコア) が搭載されています。実際、システムは現在のシーンに対処するために、古い CPU をディスパッチする必要はないと考えています。古いコアが休んでいて動作していません。以下のエディターでは、この問題を解決する方法を説明します。デスクトップに新しいテキスト ドキュメントを作成し、次の内容をコピーして 1.reg として保存し、右クリックして結合します。 WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SY]

最近 MagicX XU Mini M を購入した方は、このニュースは驚くかもしれません。新しくリリースされたハンドヘルド コンソールのハードウェアとソフトウェアの分解により、宣伝されている RK3562 CPU が実際にはスペックの低い古い RK3326 プロセッサであることが明らかになりました。
