VPS 占用内存吗?

VPS 占用内存吗?

我有一台 TelVPS 的 VPS,内存为 512MB,突发容量为 1GB。VPS 没有交换空间。

我与服务提供商讨论过这个问题,但他们说他们不为 VPS 提供交换空间,我可以添加自己的 SWAP 空间吗?

我有以下设置:

  • Apache2/乘客
  • Ruby on Rails 2,3
  • MySQL
  • 发送邮件。

我正在运行 3 个 rails 应用程序,但它们是流量很低甚至没有流量的测试应用程序。

topVPS 控制面板显示我的系统使用了大约 880MB 的 RAM。但进程列表结果top没有显示任何占用内存的进程。我已阅读http://www.linuxatemyram.com/。但以下是输出free -m

root@serveme:/var/www# free -m
             total       used       free     shared    buffers     cached
Mem:          1024        819        204          0          0          0
-/+ buffers/cache:        819        204
Swap:            0          0          0

对于这种情况我有两个疑问:

1). 如何解决内存占用问题?(如果需要更多信息,请告诉我)
2). 我可以添加交换空间吗?如果可以,该怎么做?设置系统后添加交换空间安全吗?

编辑:

1). 内存:我ps -axu --sort -rss | head -n 10按照 Fox(在评论中)的建议运行,发现我的sunspot(基于的用于全文搜索的 rails gem solr)占用了内存。有一些选项可以限制 sunspot 的内存使用量。

2). 交换空间

按照汤姆在接受的答案中所采取的步骤进行操作。

答案1

您可能无法直接处理内存使用情况。Ruby on Rails 占用大量内存,尤其是当其 ORM 构建深层对象的递归 ActiveRecords 时。Apache 也不是特别轻量级。

你可能想抓住MySQL 调谐器并查看数据库在高峰使用率(表缓存、查询缓存、连接池)时窃取了多少 RAM。

事后添加 swap 是简单的,但速度可能会非常慢。尤其是大多数 VPS 都处于过度使用、功率不足的 IO 后端。

让我们创建一个 512MB 的交换文件

  1. dd if=/dev/zero of=/swapfile1 bs=1024 count=524288 这将在 /swapfile 中创建一个 512MB 的稀疏文件
  2. mkswap /swapfile1 这将格式化它以供交换使用
  3. swapon /swapfile1 这告诉内核使用它进行交换
  4. vim /etc/fstab 编辑 Fstab,然后
  5. /swapfile1 swap swap defaults 0 0 将此行附加到文件底部,这样当您重新启动时,您就可以再次安装相同的交换分区。

相关内容