我在 EC2 上启动了几台服务器,但它们没有交换。
我做错了什么还是机器没有任何东西?
什么对性能更好?靠近磁盘内部的分区访问时间会更慢,我们必须等待驱动器在操作系统和交换分区之间切换。
另一方面,交换分区绕过所有文件系统,允许直接写入磁盘,这可能比文件更快。
什么是性能权衡?
固定大小的交换文件有多大区别?
是否会更改到交换分区会更长,但如果它是交换文件,则在交换分区上的性能会更好?
我正在运行一个自定义编译的 3.18.9 内核,我想知道在系统上禁用交换的最佳方法。如果它有所作为,我也会使用 init。
是否足以注释或删除交换行/etc/fstab
以防止交换在启动时工作/挂载,或者我应该重新编译内核而Support for paging of anonymous memory (swap)
不是 100% 确定它没有被启用?
我运行加密分区并希望防止意外泄漏到硬盘。我的系统规格也足够好,我可以在无交换环境中生存。
我推出了一些占用大量内存的东西,现在一切都滞后了很多。我猜想所有应用程序的内存都已交换,以便为内存密集型进程释放一些空间,现在所有内容在访问时都慢慢返回到 RAM。
有没有办法明确地将所有可能的东西从交换移回 RAM?或者也许不是一切,而只是一些特定的过程数据?
从 Kubernetes 1.8 开始,我似乎需要在我的节点上禁用交换(或设置--fail-swap-on
为false
)。
我找不到 Kubernetes 坚持禁用交换的技术原因。这是出于性能原因吗?安全原因?为什么没有记录这个原因?
我应该如何决定在具有 2-4 GB RAM 的新 Linux 机器 (Debian) 上进行交换的大小?我真的需要交换空间吗?
我使用 RAM 来存储我的一些数据库表,而其他的则存储在硬盘中。
今天我知道我的进程正在使用交换内存。现在什么是交换内存以及如何检测哪个进程正在使用交换内存以及如何阻止它们使用它?
我正在使用 Process Explorer 来监视我的 Windows 服务器,同时它会重建一些数据。它主要是一个 CPU 密集型进程,但我想确保它没有交换。如何判断它是否正在使用 Process Explorer?我最初的猜测是在 System Information 窗口中,它是 Paging File Write Delta。是的?不?我是个白痴?
*截图不是服务器的...只是一个例子。
替代文字 http://www.malwareinfo.org/bootcamp/img/ProcessExplorer2.jpg
当物理内存不足但有足够的交换空间时,如何让 Linux OOM 杀手不杀死我的进程?
我使用 sysctl vm.overcommit_memory=2 禁用了 OOM 杀戮和过度使用。
VM 有 3 GB 的完全免费的未碎片交换空间,被 OOM 杀死的进程的最大内存使用量小于 200MB。
我知道长期交换对性能来说会很糟糕,但是我现在需要使用交换来在内存要求更高的 valgrind 下进行功能测试。
Mar 7 02:43:11 myhost kernel: memcheck-amd64- invoked oom-killer: gfp_mask=0x24002c2, order=0, oom_score_adj=0
Mar 7 02:43:11 myhost kernel: memcheck-amd64- cpuset=/ mems_allowed=0
Mar 7 02:43:11 myhost kernel: CPU: 0 PID: 3841 Comm: memcheck-amd64- Not tainted 4.4.0-x86_64-linode63 #2
Mar 7 02:43:11 myhost kernel: Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
Mar 7 02:43:11 myhost kernel: 0000000000000000 …
Run Code Online (Sandbox Code Playgroud) swap ×10
linux ×6
memory ×2
pagefile ×2
windows ×2
amazon-ec2 ×1
centos ×1
debian ×1
init ×1
kernel ×1
kubernetes ×1
oom ×1
performance ×1
ubuntu ×1