现在网站很多都用FCGI布署到WEB SERVER上提供服务,但同一个服务的FCGI开多少个进程才合适呢?
下面举个例子,比如一个网站进首页的FCGI,hpage.fcg,假设这个FCGI对每次请求,正常的处理时延是100ms,最长处理时延是1s而每秒中单机的请求量是200次,而用户打开首页感觉最好的情况是0.5s,而最大忍耐时间是3s。
那么一个进程正常情况0.5秒可以处理5个请求,那么200/5=40个进程的话用户感觉会最爽,而最长处理时延情况下3秒可以处理3个进程,所以最差情况下200/3=66个进程可以保证用户正常返回。所以进程数在40-66之间就基本OK了。
Tnormal=100ms Texp=1000ms ReqPerSec=200 Tbest=500ms Tworst=3000ms
ReqPerSec(Tbest/Tnormal)=40
ReqPerSec(Tworst/Texp)=66
上面的算法是我自己的总结,大家有新的算法欢迎一起探讨。