我不明白为什么我swap
的 Ubuntu 16.04 已经满了,尽管我有足够的可用内存:
查看实际使用的进程时swap
:
************************************
Swap's process in count 1
systemd : 1 : VmSwap: 520 kB
otrs.Daemon.pl : 21002 : VmSwap: 3324 kB
systemd-journal : 2326 : VmSwap: 2356 kB
lvmetad : 2353 : VmSwap: 8 kB
systemd-udevd : 2358 : VmSwap: 3052 kB
/usr/sbin/apach : 25162 : VmSwap: 176 kB
/usr/sbin/apach : 28879 : VmSwap: 176 kB
bash : 30064 : VmSwap: 1460 kB
/usr/sbin/apach : 34334 : VmSwap: 180 kB
otrs.Daemon.pl : 36841 : VmSwap: 3708 kB
otrs.Daemon.pl : 36847 : VmSwap: 2976 kB
/usr/sbin/apach : 39489 : VmSwap: 176 kB
/usr/sbin/apach : 39491 : VmSwap: 176 kB
/usr/sbin/apach : 39493 : VmSwap: 176 kB
/usr/sbin/apach : 39494 : VmSwap: 176 kB
/opt/otrs/bin/c : 39496 : VmSwap: 176 kB
/usr/sbin/apach : 39497 : VmSwap: 176 kB
/usr/sbin/apach : 39498 : VmSwap: 176 kB
otrs.Daemon.pl : 43266 : VmSwap: 4320 kB
sshd : 43477 : VmSwap: 12 kB
sshd : 43555 : VmSwap: 72 kB
bash : 43556 : VmSwap: 1328 kB
bash : 43577 : VmSwap: 212 kB
ldapsearch : 43623 : VmSwap: 672 kB
ldapsearch : 43625 : VmSwap: 648 kB
ldapsearch : 43741 : VmSwap: 636 kB
sshd : 44183 : VmSwap: 12 kB
sshd : 44257 : VmSwap: 48 kB
bash : 44258 : VmSwap: 1044 kB
otrs.Daemon.pl : 44373 : VmSwap: 5912 kB
otrs.Daemon.pl : 45169 : VmSwap: 4344 kB
lxcfs : 4987 : VmSwap: 2208 kB
vmtoolsd : 4991 : VmSwap: 27168 kB
cron : 5044 : VmSwap: 136 kB
snapd : 5053 : VmSwap: 4728 kB
systemd-logind : 5055 : VmSwap: 48 kB
accounts-daemon : 5057 : VmSwap: 52 kB
dbus-daemon : 5059 : VmSwap: 4 kB
rsyslogd : 5082 : VmSwap: 44 kB
otrs.Daemon.pl : 50961 : VmSwap: 4348 kB
sshd : 5141 : VmSwap: 588 kB
polkitd : 5149 : VmSwap: 4 kB
mysqld : 5153 : VmSwap: 675748 kB
mdadm : 5162 : VmSwap: 4 kB
master : 5459 : VmSwap: 360 kB
qmgr : 5462 : VmSwap: 68 kB
otrs.Daemon.pl : 57161 : VmSwap: 4324 kB
systemd : 57265 : VmSwap: 896 kB
(sd-pam) : 57274 : VmSwap: 572 kB
otrs.Daemon.pl : 57937 : VmSwap: 56068 kB
/usr/sbin/apach : 8414 : VmSwap: 176 kB
************************************
Swap's process in count 2
systemd : 1 : VmSwap: 520 kB
otrs.Daemon.pl : 21002 : VmSwap: 3324 kB
systemd-journal : 2326 : VmSwap: 2356 kB
lvmetad : 2353 : VmSwap: 8 kB
systemd-udevd : 2358 : VmSwap: 3052 kB
/usr/sbin/apach : 25162 : VmSwap: 176 kB
/usr/sbin/apach : 28879 : VmSwap: 176 kB
bash : 30064 : VmSwap: 1460 kB
/usr/sbin/apach : 34334 : VmSwap: 180 kB
otrs.Daemon.pl : 36841 : VmSwap: 3708 kB
otrs.Daemon.pl : 36847 : VmSwap: 2976 kB
/usr/sbin/apach : 39489 : VmSwap: 176 kB
/usr/sbin/apach : 39491 : VmSwap: 176 kB
/usr/sbin/apach : 39493 : VmSwap: 176 kB
/usr/sbin/apach : 39494 : VmSwap: 176 kB
/usr/sbin/apach : 39496 : VmSwap: 176 kB
/usr/sbin/apach : 39497 : VmSwap: 176 kB
/usr/sbin/apach : 39498 : VmSwap: 176 kB
otrs.Daemon.pl : 43266 : VmSwap: 4320 kB
sshd : 43477 : VmSwap: 12 kB
sshd : 43555 : VmSwap: 72 kB
bash : 43556 : VmSwap: 1328 kB
bash : 43577 : VmSwap: 212 kB
ldapsearch : 43623 : VmSwap: 672 kB
ldapsearch : 43625 : VmSwap: 648 kB
ldapsearch : 43741 : VmSwap: 636 kB
sshd : 44183 : VmSwap: 12 kB
sshd : 44257 : VmSwap: 48 kB
bash : 44258 : VmSwap: 1044 kB
otrs.Daemon.pl : 44373 : VmSwap: 5912 kB
otrs.Daemon.pl : 45169 : VmSwap: 4344 kB
lxcfs : 4987 : VmSwap: 2208 kB
vmtoolsd : 4991 : VmSwap: 27168 kB
cron : 5044 : VmSwap: 136 kB
snapd : 5053 : VmSwap: 4728 kB
systemd-logind : 5055 : VmSwap: 48 kB
accounts-daemon : 5057 : VmSwap: 52 kB
dbus-daemon : 5059 : VmSwap: 4 kB
rsyslogd : 5082 : VmSwap: 44 kB
otrs.Daemon.pl : 50961 : VmSwap: 4348 kB
sshd : 5141 : VmSwap: 588 kB
polkitd : 5149 : VmSwap: 4 kB
mysqld : 5153 : VmSwap: 675748 kB
mdadm : 5162 : VmSwap: 4 kB
master : 5459 : VmSwap: 360 kB
qmgr : 5462 : VmSwap: 68 kB
otrs.Daemon.pl : 57161 : VmSwap: 4324 kB
systemd : 57265 : VmSwap: 896 kB
(sd-pam) : 57274 : VmSwap: 572 kB
otrs.Daemon.pl : 57937 : VmSwap: 56068 kB
/usr/sbin/apach : 8414 : VmSwap: 176 kB
************************************
Swap's process in count 3
systemd : 1 : VmSwap: 520 kB
otrs.Daemon.pl : 21002 : VmSwap: 3324 kB
systemd-journal : 2326 : VmSwap: 2356 kB
lvmetad : 2353 : VmSwap: 8 kB
systemd-udevd : 2358 : VmSwap: 3052 kB
/usr/sbin/apach : 25162 : VmSwap: 176 kB
/usr/sbin/apach : 28879 : VmSwap: 176 kB
bash : 30064 : VmSwap: 1460 kB
/usr/sbin/apach : 34334 : VmSwap: 180 kB
/usr/sbin/apach : 39489 : VmSwap: 176 kB
/usr/sbin/apach : 39491 : VmSwap: 176 kB
/usr/sbin/apach : 39493 : VmSwap: 176 kB
/usr/sbin/apach : 39494 : VmSwap: 176 kB
/usr/sbin/apach : 39496 : VmSwap: 176 kB
/usr/sbin/apach : 39497 : VmSwap: 176 kB
/usr/sbin/apach : 39498 : VmSwap: 176 kB
otrs.Daemon.pl : 43266 : VmSwap: 4320 kB
sshd : 43477 : VmSwap: 12 kB
sshd : 43555 : VmSwap: 72 kB
bash : 43556 : VmSwap: 1328 kB
bash : 43577 : VmSwap: 212 kB
ldapsearch : 43623 : VmSwap: 672 kB
ldapsearch : 43625 : VmSwap: 648 kB
ldapsearch : 43741 : VmSwap: 636 kB
sshd : 44183 : VmSwap: 12 kB
sshd : 44257 : VmSwap: 48 kB
bash : 44258 : VmSwap: 1044 kB
otrs.Daemon.pl : 44373 : VmSwap: 5912 kB
otrs.Daemon.pl : 45169 : VmSwap: 4344 kB
lxcfs : 4987 : VmSwap: 2208 kB
vmtoolsd : 4991 : VmSwap: 27168 kB
cron : 5044 : VmSwap: 136 kB
snapd : 5053 : VmSwap: 4728 kB
systemd-logind : 5055 : VmSwap: 48 kB
accounts-daemon : 5057 : VmSwap: 52 kB
dbus-daemon : 5059 : VmSwap: 4 kB
rsyslogd : 5082 : VmSwap: 44 kB
otrs.Daemon.pl : 50961 : VmSwap: 4348 kB
sshd : 5141 : VmSwap: 588 kB
polkitd : 5149 : VmSwap: 4 kB
mysqld : 5153 : VmSwap: 675748 kB
mdadm : 5162 : VmSwap: 4 kB
master : 5459 : VmSwap: 360 kB
qmgr : 5462 : VmSwap: 68 kB
otrs.Daemon.pl : 57161 : VmSwap: 4324 kB
systemd : 57265 : VmSwap: 896 kB
(sd-pam) : 57274 : VmSwap: 572 kB
otrs.Daemon.pl : 57937 : VmSwap: 56068 kB
/usr/sbin/apach : 8414 : VmSwap: 176 kB
************************************
Swap's process in count 4
systemd : 1 : VmSwap: 520 kB
otrs.Daemon.pl : 21002 : VmSwap: 3324 kB
systemd-journal : 2326 : VmSwap: 2356 kB
lvmetad : 2353 : VmSwap: 8 kB
systemd-udevd : 2358 : VmSwap: 3052 kB
/usr/sbin/apach : 25162 : VmSwap: 176 kB
/usr/sbin/apach : 28879 : VmSwap: 176 kB
bash : 30064 : VmSwap: 1460 kB
/usr/sbin/apach : 34334 : VmSwap: 180 kB
/usr/sbin/apach : 39489 : VmSwap: 176 kB
/usr/sbin/apach : 39491 : VmSwap: 176 kB
/usr/sbin/apach : 39493 : VmSwap: 176 kB
/usr/sbin/apach : 39494 : VmSwap: 176 kB
/usr/sbin/apach : 39496 : VmSwap: 176 kB
/usr/sbin/apach : 39497 : VmSwap: 176 kB
/usr/sbin/apach : 39498 : VmSwap: 176 kB
otrs.Daemon.pl : 43266 : VmSwap: 4320 kB
sshd : 43477 : VmSwap: 12 kB
sshd : 43555 : VmSwap: 72 kB
bash : 43556 : VmSwap: 1328 kB
bash : 43577 : VmSwap: 212 kB
ldapsearch : 43623 : VmSwap: 672 kB
ldapsearch : 43625 : VmSwap: 648 kB
ldapsearch : 43741 : VmSwap: 636 kB
sshd : 44183 : VmSwap: 12 kB
sshd : 44257 : VmSwap: 48 kB
bash : 44258 : VmSwap: 1044 kB
otrs.Daemon.pl : 44373 : VmSwap: 5912 kB
otrs.Daemon.pl : 45169 : VmSwap: 4344 kB
lxcfs : 4987 : VmSwap: 2208 kB
vmtoolsd : 4991 : VmSwap: 27168 kB
cron : 5044 : VmSwap: 136 kB
snapd : 5053 : VmSwap: 4728 kB
systemd-logind : 5055 : VmSwap: 48 kB
accounts-daemon : 5057 : VmSwap: 52 kB
dbus-daemon : 5059 : VmSwap: 4 kB
rsyslogd : 5082 : VmSwap: 44 kB
otrs.Daemon.pl : 50961 : VmSwap: 4348 kB
sshd : 5141 : VmSwap: 588 kB
polkitd : 5149 : VmSwap: 4 kB
mysqld : 5153 : VmSwap: 675748 kB
mdadm : 5162 : VmSwap: 4 kB
master : 5459 : VmSwap: 360 kB
qmgr : 5462 : VmSwap: 68 kB
otrs.Daemon.pl : 57161 : VmSwap: 4324 kB
systemd : 57265 : VmSwap: 896 kB
(sd-pam) : 57274 : VmSwap: 572 kB
otrs.Daemon.pl : 57937 : VmSwap: 56068 kB
/usr/sbin/apach : 8414 : VmSwap: 176 kB
谁能解释一下为什么会发生这种情况?即使有足够的可用内存,进程本身也可以交换吗?
编辑:
运行vmstat
显示 0 两个si
(so
请注意,输出被截断,并且我已经运行该命令相当长的时间):
答案1
是的,即使有可用内存,进程也可以交换。这是由虚拟内存控制的swappiness
值控制的,如您所示,该值在您的系统上设置为 60(许多安装中的默认值)。这红帽文档有一个很好的解释(这适用于任何 Linux):
交换性
0 到 100 之间的值,控制系统支持匿名内存或页面缓存的程度。高值可以提高文件系统性能,同时积极地将不太活跃的进程从物理内存中交换出来。较低的值可以避免将进程交换出内存,这通常会降低延迟,但会牺牲 I/O 性能。默认值为 60。
建议数据库工作负载使用较低的交换值。例如,对于 Oracle 数据库,Red Hat 建议 swappiness 值为 10。
如果您想将其设置为较低的值(例如 10),请编辑/etc/sysctl.conf
并添加如下行:
vm.swappiness=10
请注意,对于较新版本的systemd
,您需要在 中编辑/创建文件/etc/sysctl.d/
。正如中所解释的拱门维基:
注意:从版本 207 和 21x 开始,systemd 仅应用
/etc/sysctl.d/*.conf
和中的设置/usr/lib/sysctl.d/*.conf
。如果您自定义过/etc/sysctl.conf
,则需要将其重命名为/etc/sysctl.d/99-sysctl.conf
.如果您有eg/etc/sysctl.d/foo
,则需要将其重命名为/etc/sysctl.d/foo.conf
。
但是,请记住,交换不一定是问题。这完全取决于您的机器正在做什么。有一个很好又详细的答案在 Ask Ubuntu 上解决了这个问题,我建议您阅读。基本上,除非你的机器感觉很慢,否则就顺其自然吧。
进一步阅读: