在正在运行的 Linux 机器上创建交换文件

Joh*_*ers 8 swap centos5 vds

我们公司的网站刚刚从共享主机转移到 VDS,因为托管公司计划淘汰不太可靠的共享托管服务器。

VDS 只有 256MB 的 RAM 并托管了几个站点,除了其中一个站点之外,所有站点都是非常简单的静态站点,只有几页,并且每天服务的访问者少于 20-30。

我们的主站点运行一个稍微定制的 OSCommerce 版本,流量也很低(很少超过 10 个左右的并发用户),但确实需要 MySQL。不幸的是,由于移动mysqld由于内存不足而不断崩溃。我稍微编辑了 Apache 配置(以减少线程数)以减轻负载,但这只是回避了真正的问题。

服务器没有交换空间,但它的磁盘空间确实比我们需要的多得多,所以我正在考虑使用其中的一些空间进行交换。我知道这不会完全有助于性能,但我们可以忍受。

如何在服务器运行时创建交换文件并启用它?操作系统是 CentOS 5.5(最终版),Linux 不是我的母语。

更新:对于任何可能想知道结果的人来说,由于实现了 quanta 描述的交换文件,服务器不仅稳定,mysqld 没有更多的崩溃,它实际上比以前更快地提供页面。性能提升与我的预期相反,但我很高兴在这种情况下是错误的。

qua*_*nta 15

假设您要创建 512MB 的交换文件:

# dd if=/dev/zero of=/swapfile bs=1024 count=524288
Run Code Online (Sandbox Code Playgroud)

设置交换区域:

# mkswap /swapfile
Run Code Online (Sandbox Code Playgroud)

激活它:

# swapon /swapfile
Run Code Online (Sandbox Code Playgroud)

添加到/etc/fstab永久:

echo -e "/swapfile\t\tswap\t\tswap\t\tdefaults\t0 0" >> /etc/fstab
Run Code Online (Sandbox Code Playgroud)

并用 验证free -m

  • 当然,不需要重新启动。它是用 `swapon` 激活的。 (3认同)