Apache+mod_wsig的一个巨坑import pandas as pd程序卡死

在开发时本地环境使用import pandas as pd一点问题也没有,当我把它部署上Apche+mod_wsgi后直接出现程序卡死,无法访问,也没有任何错误日志。

1-我将import pandas as pd移动到使用的函数局部中,服务正常使用。第一次访问有稍微的卡顿,之后就不会。由于不知为何,就先用着吧

2 当版本迭代更新功能后,第一个问题时不时会出现。终于找到原因了:
pandas使用了numpy依赖,而numpy底层是c写的,这就是根本原因。

mod_wsgi对于配置的每个virtual host和app 挂载点都创建一个sub interpreter。python中那个著名的GIL,在通过C 扩展访问时时,只有第一个sub interpreter才可以正常工作,而使用其他的会导致死锁或CRASH.

【解决方案】
在Apache的host配置中加入以下代码:
WSGIApplicationGroup %{GLOBAL}
强制使用第一个子解释器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章