我有一个交换分区,并且安装了 3 个 Linux 操作系统。所以我只是想知道,如果让所有 3 个操作系统都使用这个分区,是否会产生任何安全风险或潜在问题?
在任何给定时间只能启动其中一个,并且每个都在断电/重新启动时释放交换分区。因此,如果我要关闭 Fedora 并启动到 Arch,是否会出现与交换相关的问题?就像当前启动的操作系统正在使用来自先前操作系统的数据一样?到目前为止,我还没有遇到任何问题。
我应该为每个操作系统创建一个单独的交换分区吗?我知道尝试共享休眠文件/交换分区可能会产生问题,因为另一个操作系统可能会尝试从另一个操作系统的数据中休眠。但我不使用休眠,因为我的安装是在 SSD 上。我过去曾遇到过休眠问题(例如 Windows 表现不佳)。
我发现了一个明显的问题,它也是ServerFault 的大哥。
但我的问题完全不同:如果页面错误是操作系统需要从 SWAP 文件加载某些内容的时刻,为什么即使我已经完全停用它,我也会收到页面错误?
或者我误解了什么是页面错误?
我有一个带有 9GB RAM、300GB HDD、3GB Swap、7 核的 VPS。操作系统是 CentOS 5.7 Final。
我在我的机器上运行了 postgres9.0,并进行了适当的调整(至少通过 PostgreSQL 的书/维基)。
大多数情况下,当一些复杂的查询运行时(复杂我的意思是选择最多 3 个连接),尽管我的 RAM 有大约 75% 未使用,但仍有大约 99% 的交换正在发生。
编辑:我在这里提到的空闲 RAM 是由 (free + buffered + cached) 计算的,'free -m' 显示的实际空闲几乎是 ~2%。因此,如果我一开始就错了,请纠正我。
此外,它搞砸了我的磁盘 IO,这在大多数情况下达到了 ~100% 并减慢了其他一切。(我倾向于认为我的磁盘有问题。)
我不明白发生这么多交换的原因。是因为上下文切换吗??我的处理器大部分时间都处于空闲状态,而在选择时间期间 IO 等待时间高达 30%。
如果有人能对此有所了解,我们将不胜感激。
谢谢。
以下交换分区的大小是多少?
root@pc:~# swapon -s -v
Filename Type Size Used Priority
/dev/sda5 partition 4192252 0 -1
/dev/sdc1 partition 3156736 0 -2
/dev/sdb1 partition 4194300 0 -3
Run Code Online (Sandbox Code Playgroud)
尺寸是什么意思?是4k块吗?还是 512 字节的块?
所以我知道当计算机内存空间不足时会使用交换内存。
一旦内存中有可用空间,我如何将交换的内容移动到内存中,这样它就不会减慢我的速度?
我需要为我正在做的事情做更多的交换,所以我设置了一个交换文件而不是编辑分区。
使用交换文件而不是交换分区有什么缺点吗?
我的操作系统是 Debian Linux。
我有两个 Ubuntu linux 分区,每个分区都有自己的交换空间。是否可以让它们使用相同的交换空间?
在工作中,我有四个系统,装有 4GB RAM 的 Windows XP SP 3。当我启动很多应用程序时,我发现当使用超过 2.5GB 的 RAM 时,Windows 会变得不稳定,并出现通常的效果:资源管理器崩溃、图标消失。
因此,即使至少有 1GB 的 RAM 应该是免费的,Windows 似乎也耗尽了内存(作为 32 位操作系统,WinXP 最多不能使用超过 3.5GB,但我仍然缺少 1GB)。
另一件事是 Windows 正在尝试扩展交换文件(设置为固定的 512MB),这并不是我想要的。我知道 XP 试图通过过早地交换来使我的系统更加灵活(因此它可以简单地释放一段时间未使用的页面),但我更喜欢从不交换的系统——我确实有足够的可用 RAM。
[编辑] 我的 gfx 卡有 512MB,映射是 FD000000-FDFFFFFF、E0000000-EFFFFFFF 和 FA000000-FBFFFFFF。
这意味着 EFFFFFFF 和 FA000000 之间存在相当大的差距,加上 FBFFFFFF 和 FD000000 之间的差距较小。这是一个 NVidia GeForce 8400GS。我可以在这里做些什么来移动地图?或者我可以人为地取消映射 gfx RAM 的一部分吗?这是我的开发电脑,我根本不需要 3D ...
[EDIT2] 我的设备管理器说可用内存从 0x0100'0000 到 0xDFE8'6BFF,大约 3.3GB。所以我仍然缺少0.8GB。
我在网上阅读了很多次应该减少或禁用swappiness。是这样吗,它有什么作用?我有 2GB 内存,我应该禁用 swappiness 吗?
我正在运行 vanilla Debian Jessie,我需要启用交换文件。当我使用时它工作正常,swapon /var/swap.img
但我无法在启动时使用 fstab 挂载它。
fstab 中的以下条目:
/var/swap.img none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
给出这个错误:
错误挂载无:挂载:未知文件系统类型“交换”
使用 fstab 在 Debian 上挂载交换文件的正确方法是什么?
[更新]
从 fstab 添加所有条目:
root@test:~# grep -v "#" /etc/fstab
UUID=lorem-ipsum / ext4 errors=remount-ro 0 1
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/var/swap.img none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
输出df
:
root@test:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 2.9G 16G 16% /
udev 10M 0 10M 0% /dev
tmpfs 99M 8.4M 91M …
Run Code Online (Sandbox Code Playgroud) swap ×10
linux ×7
memory ×2
partitioning ×2
windows-xp ×2
centos ×1
debian ×1
hard-drive ×1
mount ×1
postgresql ×1
swap-file ×1