sql >> データベース >  >> NoSQL >> Redis

Redis接続/バッファサイズの制限を超えました

    ServiceStackを使用して、バッファサイズの制限を超えたという同じ問題を再現することができました。ストレステストを行うためのコードはここにあります-アプリケーションの20のインスタンスを少なくとも20分間実行します。 https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

    表示される最初のエラーは、Redisがビジーロードで接続できないことで説明されているように、「Redisインスタンスに接続できませんでした」ですが、内部例外を展開すると、「システムに十分なバッファがないため、ソケットでの操作を実行できませんでした」と表示されます。スペースまたはキューがいっぱいだったため」

    私の問題はWindow7で発生しましたが、Window Server2008rcでは発生しませんでした。そこで、OSの問題かどうかを調べ始めます。 ServiceStackでDemisに電子メールを送信した後、ServiceStackはソケットを正しく閉じていたと結論付けられました。 OSを見ると、TcpTimeWaitDelayとMaxUserPortを設定することで問題が修正されました。

    その他の参考資料。 TcpTimeWaitDelayを45秒に

    およびMaxUserPorthttp://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

    ポート範囲を1025-64511に調整しました




    1. StackExchange.Redis-LockTake/LockReleaseの使用法

    2. Hadoopコンバイナーの紹介、動作、および利点

    3. Yii2フレームワークでMemcachedを使用する方法

    4. JedisによるRedisキーの有効期限の通知