次のシナリオのサーバーを設計しています。
- 一連の単一のイメージが NAS に保存されます。100 としましょう。
- クライアントは TCP ソケットを介してサーバーに接続し、image39 を要求します
- サーバーは NAS から image39 を読み取り、ソケットを介してクライアントに送り返します
- クライアントがシリーズの他の画像も要求する可能性が高いため、次のようになります。
cat image39 > /dev/null
画像を反復処理し、それらを読み取り、サーバー上のメモリに強制的にキャッシュするスレッドを起動したいと思い ます- スレッドは次のように画像をフェッチします: image38、image40、image37、image41 など。
- すでに取得された画像は無視されます
- クライアントが image77 をリクエストする場合、フェッチ スレッドをリセットしてフェッチします: image76、image78 など。
これは、多くのシリーズとクライアントに合わせて拡張する必要があります。おそらく、1000 の同時プリフェッチのオーダーです。スレッドが多すぎると、パフォーマンスが低下する可能性があることを理解しています。代わりに新しいプロセスをフォークした方がよいでしょうか? スレッドやプロセスよりも効率的な方法はありますか?
ありがとう!!!