这是 月小水长 的第 131 篇原创干货
写了个一站式微博分析可视化网站 发布以来,平均每天约 100 PV,其中定制可视化服务每天数十人次使用。但是这个网站加载起来非常卡顿,本地运行却非常流畅,因此我最开始我将大部分的原因归于我购买的云服务器器性能问题,1核心2G 的配置。
昨日终得闲,特意排查了这个问题,发现事情并非如此,特此记录排查历程。
首先,使用命令查询内存占用率前 10 的进程。
代码语言:javascript复制ps aux| grep -v "USER" |sort -n -r -k 4 | awk '{print $11}' | head -n 10
显示如下:
不查不知道,一查吓一跳,前六个高内存占用有五个是 uwsgi 进程,这个进程是干什么用的呢?详细地可以查看 扫码考勤小程序正式上线,在这里简言之就是本网站运行的容器。
为什么是五个呢,我看了下我的 uwsgi.ini 配置文件,除了 master 进程还设置了四个工作进程。
那应该设置成多少个工作进程呢?查阅资料得知,设置成 CPU 核心数最佳,我是 1 核心,所以我改成了 1 个工作进程,每个进程配置 10 个线程(线程数 1- 800均可)。
然后我重启了 uwsgi 的启动程序 supervisor,这个 supervisor 也在文章 扫码考勤小程序正式上线 有讲到。
激动人心的时刻到了,我重新访问网站,卡顿的感觉依旧。
再看了下内存占用情况,发现之前的工作进程并没有结束,于是我飞快地输入 reboot。
再打开,快地飞起,果然重启解决一切问题?
网站的访问地址可以是,
代码语言:javascript复制http://weibo.buyixiao.xyz/
也可以是
代码语言:javascript复制http://buyixiao.xyz/