我有一个在 hypervm 上运行的 VPS
在进程列表中我有类似这样的内容
> /usr/libexec/mysqld --basedir=/usr
> --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/
user : mysql
占用 150 mb RAM
进而
/usr/sbin/named -u named -t /var/named/chroot
user : Named
此过程占用 50 mb RAM
我怎样才能解决 RAM 过度使用的问题并减少它。
我拥有 root 和 SSH 访问权限
答案1
您是否在此 VPS 上使用 MySQL 和/或 Bind?如果没有,请删除或禁用它们。否则,您需要深入研究这两项服务的配置文件。
如果其他方法都失败了,请添加更多内存!
答案2
HyperVM 不是虚拟化平台,而是 OpenVZ 或 Xen 的控制面板。您的 VPS 运行在哪个平台上对于解决此问题可能很重要,因此您应该找出您正在使用的平台。
如果您使用的是 OpenVZ,那么部分内存“使用量”可能来自它测量堆栈分配,而不是实际使用的内存。您应该运行“ps aux”并注意 RSS 和 VSZ 字段。如果 named 或 mysql 的 RSS 值较低但 VSZ 值较高,您应该尝试在服务的启动脚本中使用类似“ulimit -s 256”的命令来减少堆栈大小。请参阅 lowendbox 的文章。
如果您的应用程序可以接受非 MyISAM 表支持,则可以通过删除非 MyISAM 表支持来减少 MySQL 的内存使用量。lowendbox 有很多关于此的文章,包括运行 18 个静态网站和wordpress 在64MB虚拟专用服务器。