sql >> データベース >  >> RDS >> Mysql

ランダムなPHPFastCGI/ピアによる接続のリセット/不完全なヘッダー

    この問題は通常、ホスト固有だけでなく、構成によっては開発者にも関連していますが、一部のホストはFastCGIにかなり厳密であり、機能が制限されます。一般的に、FastCGIを使用せずに実行する方が簡単で、アプリケーションでFastCGIを使用する必要があります。

    fcgiラッパー(/dev/shm/blackmou-php.fcgiにあるもの)またはFastCGIスポーン用の.htaccessを確認して、問題が発生するファイルとそれらのファイルにあるコードを知らなくても、より適切に支援する必要があります。また、ホストはApache、LightHttpd、またはNginx(またはそれらの組み合わせ)を使用していますか?その時点で、PHP5.3.9+を使用するように更新することを強くお勧めします

    これはさまざまな問題が原因で発生する可能性があるため、FastCGIは、サイト/スクリプトがサービス拒否攻撃を受けたり、メモリリークなどによってクラッシュしたりするのを効果的に防ぎます(例:数を減らして制限するだけで80,000の接続を処理しようとするリクエストの数、またはプロセスをタイムアウトして終了することにより、無限のループでスタックする)

    特にこのエラーは、通常、idle_timeout(デフォルトでは30秒)または最大子プロセス制限が原因で発生します。また、誰かが長時間実行されているスクリプトを開始し、スクリプトが完了する前にブラウザ/接続を閉じたことが原因である可能性もあります。

    FastCGIはプロセスラッパーを起動し、コマンドを実行し、プロセスを完了する前にタイムアウトします。接続はピアによってリセットされたと見なされます。

    もう1つの例は、最大の子(maxProcesses)に到達したことです(例:多くのサイトでは、実際には平均トラフィックに応じて20または50が必要な場合に、例として2または4が表示されます)すべての子が現在アクティブであり、追加のリクエストがある場合/接続が確立されると、子はmaxProcessesに制限され、FastCGIはアクティブな子を共有しないため、構成に応じて、最初にプロセスを終了して新しい子プロセスを開始するか、リクエストをドロップする必要があります。

    設定の詳細は次のとおりです。

    http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html

    http://www.fastcgi.com/drupal/node/10

    ラッパーの例

    PHP_FCGI_CHILDREN=0 #no limit
    export PHP_FCGI_CHILDREN
    PHP_FCGI_MAX_REQUESTS=10000
    export PHP_FCGI_MAX_REQUESTS
    

    更新

    これに加えて、これはphpのメモリ制限が原因である可能性もあります

    上記で問題が解決しない場合は、php.iniを更新して memory_limitを増やしてください



    1. OBJECTPROPERTY()関数を使用して、オブジェクトがSQL Serverのテーブル、ビュー、またはストアドプロシージャであるかどうかを確認します

    2. MySQLマッチの問題

    3. 多くの行をスキャンしないようにMySQLクエリを最適化する

    4. ActiveRecordを使用したCodeIgniterのクエリ内のDATE_FORMATが機能しない