VPSサーバー(Ubuntu)と白いアドレスを持つWebカメラがあります。サーバーは10分ごとにカメラに新しいビデオを確認するように要求します。確認には、6つの要求(IP可用性確認、トークンインポート、パラメータ設定、データ受信、トークン停止、トークン削除)が含まれます。カール要求は次のとおりです。
curl_setopt_array($ch, [CURLOPT_USERPWD => 'admin:admin',
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 500,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH=>CURLAUTH_ANY
]);
今日、不明な理由で「10001ms後に接続がタイムアウトしました」というエラーが発生し始めました。手順6のいずれかでエラーが発生しました。実験のために、これらのクエリのうち100個のループを実行しました。そのうち49個に誤りがありました。
CONNECTTIMEOUTを30に増やしましたが、何の効果もありませんでした。 「30001ms後に接続がタイムアウトしました」というエラーが発生します。
Linuxタグは、問題がサーバー側にあると仮定しているためです。自宅のPCで同じ要求を実行すると、要求100個あたりエラーが0個発生するためです。カメラとPCは同じローカルネットワークにありません。しかし、私のサーバーIPで自分のPCのVPNを開くと、同じエラーが発生します。だから間違いなくサーバーに問題があるようです。
Rostelecom(カメラプロバイダ)は、これが自分のせいではなく、私の問題だと言いました。
これがtcpdumpが返すものです。https://pastebin.com/QGsEJDLw私は銃口に対してカールクエリを10回実行しました。そのうちエラー2件発生(処理時間10秒超)
接続時間が長くなる原因を見つける方法を教えてください。