- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
PHP は、事実上無限のコールスタックをサポートします。ただし、Zend Engine により提供された関数呼び出しのフック zend_execute_ex
(PHP 5.4 では zend_execute
) は、ネイティブ C スタックを使用して PHP メソッドと関数を呼び出します。これは、PHP のコールスタックが余分に深い場合にスタックオーバーフローの原因となります。
ddtrace バージョン 0.48.0
以降、PHP トレーサーは PHP 5 で zend_execute_ex
フックを使用します。コーススタックが 512
フレームの深さに達すると、PHP トレーサーが警告を発します。環境変数を DD_TRACE_WARN_CALL_STACK_DEPTH=0
に設定すると、この警告を無効にできます。
PHP アプリケーションを深いコールスタックに対応させるには、ホストマシンでスタックサイズ上限を調整します。既存のスタックサイズを確認するには、次を実行します。
ulimit -s
たとえば、既存のスタックサイズが 8192
の場合、スタックサイズを 2 倍の 16384
に設定します。
sudo ulimit -s 16384