我们让系统管理员在 digitalocean 配置了几个服务器。在我看来,这台服务器上似乎没有启用交换分区,但我已经很久没有做过这样的事情了。这是一个 rails 应用程序,出现这种情况的唯一原因是我们遇到了内存不足错误。交换分区是否仍被视为现代 (3.2.13 rails 应用程序) 的最佳实践?我想是的。是否有一个简单的解决方法可以从命令行创建交换分区(主机有 2GB 的 RAM)?不是要求这样做,但希望得到一些指导。
我很乐意升级到 1GB 内存的服务器,每月只需多花 5 美元。
部署@x1:~$ sudo fdisk -l 磁盘 /dev/sda:42.9 GB,42949672960 字节,255 个磁头,63 个扇区/磁道, 5221 个磁柱,共计 83886080 个扇区 单位 = 扇区 1 * 512 = 512 字节扇区大小(逻辑/物理):512 字节/512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标识符:0x00000000 磁盘 /dev/sda 不包含有效的分区表 部署@x1:~$
我还应该担心最后一行不包含有效的分区表吗?
答案1
您可以随时通过运行以下命令来检查交换是否已启用:
swapon -s
(看man swapon
了解详情。
这列出了当前启用的所有交换。如果运行该命令后没有输出,则表示交换未启用。大多数情况下,Ubuntu 系统只有一个交换分区,没有启用任何交换文件;如下所示:
ek@Kip:~$ swapon -s
Filename Type Size Used Priority
/dev/sda7 partition 4194300 1499712 -1
至于sudo fdisk -l
告诉你Disk /dev/sda doesn't contain a valid partition table
:不,这通常不会引起担忧。(特别是,这并不意味着没有启用交换。)
fdisk
不支持某些构造——它不会将使用 LVM 或软件 RAID (md) 的磁盘识别为具有有效分区表。LVM 在服务器上非常常见。当您看到此警告时fdisk -l
,请parted -l
改为运行:
sudo parted -l
parted
更有可能识别和报告此类构造。