0

我有一些 Django 内容,我计划在 vps 上托管,面向网络。它动态生成缓存到磁盘的图像(通常不需要重新生成,除非(1)用户更改图像中的内容或(2)布局全局更新,因此所有图像都需要重新生成)当用户请求视图时,它会检查查看存储在磁盘上的内容是否是最新的(即全局布局未更改且用户未更改任何内容),然后从磁盘获取项目或生成新图像,存储并提供它。

我已经对生成和存储到磁盘的过程进行了计时,在最近运行 Django 开发服务器的 MBP 上大约需要 200 毫秒。虽然我预计不会有大量点击,但我仍然对人们对处理生成这样的内容的看法感兴趣,所以我有几个问题:

1)应该使用什么标准来决定一个进程/任务通常是否值得移交给队列系统(rabbitmq等),显然你不会将每个任务移出应用服务器,所以如果花费时间,多少毫秒是否值得将其移走?

2)我还没有决定用什么来托管它。如果我计划有一些其他动态内容可能需要一些时间来执行涉及图像等,我是否会更好地建议使用 nginx over lighttpd 或 apache 使用 fastcgi、mod_wsgi 等来托管它?请记住,我计划在具有 512-1GB 内存的 VPS 上托管,如果服务能正常降级并且如果有很多请求可以防止进程锁定服务器,那就太好了新图像。

我确实计划进行更多测试,因为我在这方面并不精通,但我想从有这种经验的人那里知道最好看什么方向,尝试那些已知不起作用的东西是没有意义的。

4

1 回答 1

0

1)如果您有足够的线程来处理请求,那么您不必担心在另一台服务器上异步处理它。话虽如此,如果图像处理将占用大量 CPU 时间,那么您将希望将其委托给另一台服务器。

2)分离静态内容和动态内容的服务将是一个好主意。这样,如果动态内容生成部分开始出现性能问题,它不会影响静态内容的服务。

于 2009-09-20T15:05:02.020 回答