如何架构化高效启动含资源密集型初始化的Perl进程?
Perl应用初始化性能优化咨询
当前技术栈
Nginx FCGI CGI::Fast HTML::Template::Compiled Redis CentOS Linux 7.9 spawn-fcgi
当前架构与问题
我的Perl应用在进程初始化阶段,需要将大量大型哈希及其他数据加载到全局变量中,这些数据大多已预加载并缓存到分布式Redis实例。目前通过spawn-fcgi在指定端口创建6-8个进程,由Nginx的FCGI模块负责连接调度。
核心挑战
初始化过程计算量大、耗时久:6个进程同时初始化会触发CPU峰值,且整体要等待20-25秒才能开始处理Web请求,每个进程的首次请求都存在这个延迟问题。
我试过按需直接从Redis加载内容,但内存存储的性能明显更优,所以希望保留内存缓存的方案,只解决初始延迟的问题。
咨询需求
想知道有没有没考虑到的架构模式?比如先启动一个进程完成初始化,再克隆多个进程处理请求;或者逐个启动进程,完成一个的初始化后再启动下一个,但不确定spawn-fcgi是否支持这种方式。希望能得到比当前方案及上述思路更优的解决方案。
内容的提问来源于stack exchange,提问作者tomypro
相关产品推荐
相关产品推荐

