环境
Ubuntu 14.04.6 LTS
Python2.7
问题
服务器在内存占用过大。
问题分析步骤
- 使用如下脚本监听路径下的进程启动的内存变化,监听的结果为服务器启动三秒到五秒的过程中出现了内存上涨行为。
#!/bin/bash
while true
do
echo `date +"%Y-%m-%d %H:%M:%S"` `ps -aux | grep ${PWD}` >>mem.log
sleep 1
done
- 查看服务器代码的启动逻辑,寻找启动后三秒于五秒执行的定时器发现过程中加载用户工会信息与用户排行信息为了获得用户的几点属性如用户名,用户等级,用户vip等级等信息直接通过用户cid实例化了用户对象获取用户所有属性,只是未置为上线状态。
- 确认为因为滥用用户对象所以造成了不必要的浪费。
解决
添加一个方法,只传输用户属性而不会在传输属性的过程中实例化存储整个用户对象。