0

我正在为以下场景设计服务器:

  1. 一系列单个图像存储在 NAS 上,比如说 100 个
  2. 客户端通过 TCP 套接字连接到服务器并请求 image39
  3. 服务器从 NAS 读取 image39 并通过套接字发送回客户端
  4. 客户很可能还会请求该系列中的其他图像,因此:
  5. 我想启动一个线程来遍历图像,读取它们,然后 cat image39 > /dev/null强制缓存到服务器上的内存中
  6. 线程将按如下方式获取图像:image38、image40、image37、image41 等。
  7. 已经获取的图像被忽略
  8. 如果客户端现在请求 image77,我想重置获取线程以获取:image76、image78 等。

这必须扩展到许多系列和客户。可能在 1000 个并发预取的数量级上。我知道如果线程太多,线程可能会导致性能下降。改用 fork 一个新进程会更好吗?有没有比线程或进程更有效的方法?

谢谢!!!

4

1 回答 1

1

这是过早的优化。尝试在不使用“强制”缓存的技巧的情况下实现您的系统,看看它是如何工作的。我敢打赌它会没事的——如果结果证明你的技巧不能与系统上的其他东西配合得很好,你就不必担心令人讨厌的惊喜。

于 2011-05-16T01:50:52.390 回答