Hello!
2016-02-25 7:57 GMT-08:00 YuanSheng Wang:
>> 大家好,有人使用过 Nginx + Lua + graphicsmagick 做作图服务器吗
>
> nginx 中并不擅长有关 CPU、磁盘 I/O 这类资源消耗场景,应尽量把这些功能拆分到其他服务,通过网络 API 的方式暴露给 nginx,让
> nginx 可以更高效完成高并发网络处理。
>
这里还是一个度的问题,如果单次 CPU 密集型计算和硬盘 IO 操作的延时控制在毫秒级别乃至以下,则并不是什么问题。
如果这类阻塞操作的延时要高得多,同时在总流量中的占比不高,则可以放在某个“后端 nginx”里面,然后让前端 nginx 与之通信。(后端
nginx 可以直接使用 ngx_stream_lua_module 暴露 TCP 服务,而前端 nginx 直接在 Lua 里面挑
cosocket 与之交互)。
无论如何,需要提醒的是,无论 CPU 资源还是文件 I/O 的吞吐力都是一个常量,所以尽量减少资源浪费才是提升性能的关键(拆分过多的服务或
OS 线程只会加剧系统资源的浪费性消耗)。
Regards,
-agentzh