说明一下情况:
1、我学了一段时间 Django,然后写了两个基本一样的博客网站
2、我使用 Gunicorn+Nginx 分别部署了这两个网站在阿里云的服务器上面,Nginx 这个好说,就是一个 service 文件来搞定,Gunicorn 的配置也是 service 文件,因为有两个网站,所以分别在两个 service 文件中配置了信息,我是按照下面这种来配置的:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=sammy
Group=www-data
WorkingDirectory=/home/sammy/myproject
ExecStart=/home/sammy/myproject/myprojectenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/sammy/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
3、只需要分别运行着两个配置文件,网站就可以成功访问了,这个地方没有问题
4、问题在于,我发现我只部署一个网站的时候,服务器内存占用是 40-60%左右,但是两个网站都运行的时候,服务器内存占用长期是 80%以上,我的服务器是阿里云的,CPU1 核,内存 2G。
5、两个网站同时运行会经常出现 504 访问超时,或者直接 502,如果只运行一个网,就没问题,我怀疑就是内存占用的问题,但是具体为什么会这样,我不清楚啊,是不是 Gunicorn 运行两个网站很占用内存啊?
放上网站地址和代码,估计大佬也不愿意花时间看,但是说不准呢:
网站地址: 我的博客网站
网站源代码:Github 源代码
1
okzpy9425 2018-03-14 16:25:47 +08:00
gunicorn 跑一个进程。
|
2
Hopetree OP @okzpy9425 你的意思是不是我不应该创建两个 gunicorn 的配置文件?而是应该只运行一个?如果你说的是这个意思,那就是我想要的方案,因为在我创建两个配置文件来运行之前就是想着怎么来只运行一个配置文件来部署两个网站,我一直没有找到方法啊(另外,网上很多说的用 uwsgi+nginx 的部署我试过,一直没有弄好,所以暂时不想考虑用 uwsgi 了)如果你知道怎么改我的这个配置文件能够同时部署两个网站就好了
|
3
sunmonster 2018-03-14 17:14:50 +08:00
可以试试 waitress,gunicorn 是 pre-fork 模式,如果请求多了的话内存占用会比较多,但是你的网站应该还没那么多的流量,而且 1 核 cpu,2G 内存开一个就占用 40-60%是不是有点多了?
|
4
Hopetree OP @sunmonster 对啊,就是因为这个内存占用太高了,所以我才奇怪啊,我这个服务器的配置不是阿里云的最基础版啊,2G 部署几个网站应该是没有问题的吧,我这部署两个都不行了所以我觉得是不是我部署的方式有问题,我会去看一下你说的这个的,了解一下
|