留言板  |    文章总数=102  |    RSS订阅
机会是留给有准备的人,没机会的人,就别瞎准备了毒鸡汤

django+nginx部署的博客uwsgi进程CPU占用100%

2019-10-15     loonlog     1744     0

先贴出来问题得到解决的uwsgi配置代码,大家有好的建议,请留言教我,谢谢!

<uwsgi>    
   <socket>127.0.0.1:9100</socket> <!-- 内部端口,自定义 --> 
   <chdir>/datas/wwwroot/</chdir> <!-- 项目路径 -->            
   <module>loonlog_pj.wsgi</module>  <!-- loonlog_pj为wsgi.py所在目录名--> 
   <processes>2</processes> <!-- 进程数,新改-解决问题 -->
   <threads>4</threads> <!-- 工作线程数,新加-解决问题 -->  
   <master>true</master> <!-- 启用主进程,新加-解决问题  -->      
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

在centos+nginx上部署django web,不几天cpu就占用100%,有时候能达到150%,重启后,一晚上就可能继续飙到100%,ssh都进不去;查看进程,发现是uwsgi进程占用较多,内存也一样是占用很多,有时候查看还能发现kswapd0进程也占用很多。

  • uwsgi我理解就是web的一个服务,我一度怀疑是不是我的代码有问题,但是网上也没有这种说法;

  • kswapd0,由于我是小白,第一次遇到,网上人家说是“kswapd0占用过高是因为物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高”,那我看到有时候,cpu飙上去的时候,硬盘读写也很频繁,那就是这个原因了。

实在没法子,但是,根源还是uwsgi的事,看到一篇博客,讲到优化uwsgi和nginx代码,比如增加进程数量等,人家优化进程数到24,我查看我的uwsgi配置,我配置的进程数是4,那我就把进程数增加到24观察几天吧。

loonlog.com-django-nginx-uwsgi-cpu-100-4.png

uwsgi进程数配置为4

loonlog.com-django-nginx-uwsgi-cpu-100-24

uwsgi进程数配置为24

通过以上两个图,可以明显看出,进程数为24的时候,出现硬盘读写频繁,就是因为物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高;还发现进程数过高的时候不稳定,会自己降下来,然后继续上升;

提到进程的问题,有人问我,你的服务器配置是咋样的,我说单核cpu,然后别人就笑了,单核还分这么多进程,,一般建议建议将进程数设置为CPU核心数的两倍,我赶紧把进程降低到2,又增加了线程数和主进程,目前看是问题解决了,有待长期观察。

总结:本人完全小白,部署项目是第一次,参考网上的教程,别人uwsgi配置的进程数是4,我就直接拷贝了,现在出了问题,才知道这个设置的意思,不怕遇到困难,遇到了,就长进了!

django , python , centos , nginx , uwsgi

    觉得有用?请点击页面顶部广告支持我!

您可能感兴趣的文章

发表评论(关于评论)

评论列表,共 0 条评论

  • 暂无评论