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

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

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

VDS 仅有 256MB RAM 并托管几个站点,除一个站点外,其余站点都是非常简单的静态站点,只有几个页面,每天的访客总数不到 20-30 人。

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

服务器没有交换空间,但磁盘空间比我们所需的多得多,所以我正在考虑将其中一部分空间用于交换。我知道这对性能没有太大帮助,但我们可以忍受。

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

更新:对于那些可能对结果感到疑惑的人来说,自从按照 quanta 的描述实施交换文件以来,服务器不仅稳定了,mysqld 不再崩溃,而且它实际上比以前更快地提供页面。性能提升与我的预期相反,但我很高兴这次我错了。

答案1

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

# dd if=/dev/zero of=/swapfile bs=1024 count=524288

设置交换区域:

# mkswap /swapfile

激活它:

# swapon /swapfile

添加/etc/fstab为永久内容:

echo -e "/swapfile\t\tswap\t\tswap\t\tdefaults\t0 0" >> /etc/fstab

并用 进行验证free -m

相关内容