RESTful API を提供する Apache2 と Django (mod_wsgi) のセットアップがあります。これには一連の自動テストがあり、1000 件までの API リクエスト (純粋な http GET/POST/PUT/DELETE) を順番に実行します。
問題は、約 80 件のリクエストごとに、正確に 5 秒または 10 秒の奇妙なラグ/タイムアウトが発生することです。ここでタイムスタンプの例を参照してください。
Request 1: 2013-08-30T03:49:20.915
Response 1: 2013-08-30T03:49:30.940
Request 2: 2013-08-30T03:50:32.559
Response 2: 2013-08-30T03:50:37.597
なぜこれが起こるのか分かりません。キープアライブ オフ (Django の推奨セットアップ設定) の apache 構成がありますが、それ以外は Ubuntu 12.04 LTS の標準インストールです。
ウェブサーバーと同じサーバーからテストを実行しています。最初はこれがある種の DNS キャッシュだと思っていましたが、要求しているホスト名を /etc/hosts に追加しましたが、問題は解決しません。
この遅延/タイムアウトが発生すると、システムはアイドル状態になり、CPU とメモリが大量に発生します。遅延は特定のリクエスト (URL) に固有のものではなく、ちょっとランダムに見えます。
常に正確にミリ秒の 5 秒または 10 秒であることを考えると、これはどこかの特定の設定が原因のように感じます。