django+nginx部署的博客uwsgi进程CPU占用100%
2019-10-15     loonlog     5550     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观察几天吧。
uwsgi进程数配置为4
uwsgi进程数配置为24
通过以上两个图,可以明显看出,进程数为24的时候,出现硬盘读写频繁,就是因为物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高;还发现进程数过高的时候不稳定,会自己降下来,然后继续上升;
提到进程的问题,有人问我,你的服务器配置是咋样的,我说单核cpu,然后别人就笑了,单核还分这么多进程,,一般建议建议将进程数设置为CPU核心数的两倍,我赶紧把进程降低到2,又增加了线程数和主进程,目前看是问题解决了,有待长期观察。
总结:本人完全小白,部署项目是第一次,参考网上的教程,别人uwsgi配置的进程数是4,我就直接拷贝了,现在出了问题,才知道这个设置的意思,不怕遇到困难,遇到了,就长进了!
Django , Python , Centos , uwsgi , nginx
http://loonlog.com/2019/10/15/django-nginx-uwsgi-cpu-100/
评论列表,共 0 条评论
暂无评论