diff --git a/pages/swap.txt b/pages/swap.txt new file mode 100644 index 0000000000000000000000000000000000000000..5410d7e9d11f7a83bd4cee57dfdb8e94a0c0bc79 --- /dev/null +++ b/pages/swap.txt @@ -0,0 +1,388 @@ +====== 为 VPS æ·»åŠ swap ====== + +本篇为 [[https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04|How To Add Swap Space on Ubuntu 20.04 - by Brian Boucheron]] 的翻译。原文以 [[https://creativecommons.org/licenses/by-nc-sa/4.0/|Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]] å‘布,本文沿用相åŒåè®®å‘布。 + +ç¿»å¾—è¾ƒä¸ºéšæ„ã€‚ç¿»è¯‘ä¸æ³¨æ„到的一些问题会以__注__的方å¼ç»™å‡ºã€‚ + +===== 太长ä¸çœ‹ / TL;DR ===== + +è¿™éƒ¨åˆ†æ˜¯æœ¬ç¯‡æ–‡ç« å‘½ä»¤çš„æ€»ç»“ï¼Œä¸åœ¨åŽŸæ–‡ä¸ã€‚ + + +1. 查看系统内å˜çжæ€ä»¥åŠ swap ä¿¡æ¯ï¼š +<code> +free -h +</code> + + +2. 检查硬盘å¯ç”¨ç©ºé—´ï¼š +<code> +df -h +</code> + + +3. åœ¨æ ¹ç›®å½•ä¸‹ ''/'' 创建 1G çš„å为 ''swapfile'' çš„ swap 文件: + +(ext4 文件系统的情况,更快速) +<code> +sudo fallocate -l 1G /swapfile +</code> + +(更ä¿é™©ï¼‰ +<code> +sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress +</code> + + +4. 设置安全的æƒé™ï¼š +<code> +sudo chmod 600 /swapfile +</code> + + +5. åˆå§‹åŒ– swap 文件: +<code> +sudo mkswap /swapfile +</code> + + +6. å¯ç”¨ swap 文件: +<code> +sudo swapon /swapfile +</code> + + +7. 备份 ''/etc/fstab'' 文件: +<code> +sudo cp /etc/fstab /etc/fstab.bak +</code> + + +使用 ''/etc/fstab'' 文件æ¥ä½¿ swap 开机自动开å¯ï¼š +<code> +echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab +</code> + + +8. é…ç½® ''swappiness'': +<code> +sudo sysctl vm.swappiness=10 +</code> + +é…ç½® ''/etc/sysctl.conf'' 使 ''swappiness'' 开机自动设置(也å¯ä»¥ä½¿ç”¨ ''nano'' 编辑器): +<code> +echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf +</code> + +===== 引言 ===== + +解决应用程åºå†…å˜ä¸è¶³çš„ä¸€ç§æ–¹æ³•是在您的æœåŠ¡å™¨ä¸Šæ·»åŠ swap 空间。在本教程ä¸ï¼Œæˆ‘们会é˜è¿°åœ¨ Ubuntu 20.04 æœåŠ¡å™¨ä¸Šæ·»åŠ swap 文件的方法。 + +**è¦å‘Š**ï¼šè™½ç„¶åœ¨ä½¿ç”¨ä¼ ç»Ÿçš„æœºæ¢°ç¡¬ç›˜çš„ç³»ç»Ÿä¸Š swap 一般是推èçš„é…置,但是在固æ€ç¡¬ç›˜ä¸Šæ”¾ç½® swap å¯èƒ½å¯¼è‡´ç¡¬ä»¶è€åŒ–è€Œé€ æˆé—®é¢˜ã€‚å› æ¤ï¼Œæˆ‘们䏿ލè在 DigitalOcean 或是其它使用 SSD 储å˜çš„æä¾›å•†ä¸Šä½¿ç”¨ swap。 + +__注__: + * 在 VPS æè¿°é‡Œï¼Œæœºæ¢°ç¡¬ç›˜ä¸€èˆ¬ä¸º HDD,固æ€ç¡¬ç›˜ä¸€èˆ¬ä¸º SSD。这å¥è¦å‘Šæ˜¯ DigitalOcean åŽŸæ–‡æ•™ç¨‹é‡Œæœ‰çš„ã€‚ä½†æ˜¯ï¼Œå› ä¸ºè¿™ç§ç¡¬ä»¶è€åŒ–的问题应该在 VPS æä¾›å•†ç»´æŠ¤çš„范围之内,所以一般也ä¸ç”¨å¤ªæ‹…心,平时åšå¥½å¤‡ä»½å³å¯ã€‚ + * 在å¦å¤–一个教程 [[https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-debian-10|How To Add Swap Space on Debian 10 - by Brian Boucheron - CC-BY-NC-SA]] æåˆ°äº†å¦ä¸€ç‚¹ï¼šå› 为大多时候 VPS 的硬盘是与其它用户共享的,所以如果其它用户“过度â€ä½¿ç”¨ä½¿ç¡¬ä»¶è€åŒ–了,那么该å还是会å。 + +===== swap 是什么? ===== + +swap 是æ“作系统划分出æ¥çš„硬盘上的一部分储å˜ç©ºé—´ï¼Œè¿™éƒ¨åˆ†ç©ºé—´å¯ä»¥ä¸´æ—¶å‚¨å˜å†…å˜ä¸è¿‡å¤šçš„æ•°æ®ã€‚忽略一些é™åˆ¶ï¼Œè¿™å°±ç›¸å½“äºŽå¢žåŠ äº†æœåŠ¡å™¨ä¸Šçš„å†…å˜å¤§å°ã€‚硬盘上的 swap 空间主è¦ä¼šåœ¨å†…å˜ä¸è¶³çš„æƒ…况下使用。 + +ç¡¬ç›˜ä¼šæ¯”å†…å˜æ…¢å¾ˆå¤šï¼Œä½†æ“作系统也会倾å‘于把数æ®ä¿å˜åœ¨å†…å˜ä¸ï¼Œè€ŒæŠŠæ›´è€çš„æ•°æ®æ”¾åˆ° swap ä¸ã€‚总体上,swap å¯ä»¥ä½œä¸ºå†…å˜è€—尽时的åŽå¤‡æ‰‹æ®µï¼Œç”¨äºŽåœ¨éž SSD 系统上é¿å…内å˜ä¸è¶³çš„错误。 + +__注__: + * â€œéž SSD 系统â€ä¹Ÿæ˜¯åŽŸæ–‡æœ‰çš„ã€‚ä¸Žä¸Šé¢çš„æ³¨é‡Šç›¸åŒï¼Œè¿˜è¯·æ ¹æ®è‡ªèº«æƒ…况决定是å¦åœ¨ SSD 机器上使用 swap。 + * swap 是硬盘上的储å˜ç©ºé—´ï¼Œè¿™éƒ¨åˆ†ç©ºé—´å¯ä»¥æ˜¯æŸä¸ªæ–‡ä»¶ï¼Œå³ä¸‹æ–‡æ‰€è¯´çš„ swap 文件,也å¯ä»¥æ˜¯æŸä¸ªç¡¬ç›˜åˆ†åŒºï¼Œå³ swap 分区。本教程使用的是 swap 文件。 + +===== 第一æ¥ï¼šæ£€æŸ¥ç³»ç»Ÿçš„ swap ä¿¡æ¯ ===== + +在我们开始å‰ï¼Œæˆ‘们å¯ä»¥æ£€æŸ¥ç³»ç»Ÿæ˜¯å¦å·²ç»æœ‰ swap 了。我们å¯ä»¥æ‹¥æœ‰å¤šä¸ª swap 文件或是 swap 分区,但总体上一个应该就够了。 + +我们å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤æŸ¥çœ‹ç³»ç»Ÿæ˜¯å¦å·²ç»é…置有 swap: +<code> +sudo swapon --show +</code> + +如果您没有得到任何输出,那这就æ„å‘³ç€æ‚¨çš„系统还没有 swap 空间。 + +您å¯ä»¥ä½¿ç”¨ ''free'' 工具æ¥éªŒè¯æ²¡æœ‰ swap 被开å¯ï¼š +<code> +free -h +</code> + +输出: +<code> + total used free shared buff/cache available +Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi +Swap: 0B 0B 0B +</code> + +您å¯ä»¥åœ¨è¾“出的 Swap ä¸€è¡Œä¸Šçœ‹åˆ°ç³»ç»Ÿä¸æ²¡æœ‰å¼€å¯çš„ swap。 + +===== 第二æ¥ï¼šæŸ¥çœ‹ç¡¬ç›˜çš„å¯ç”¨ç©ºé—´ ===== + +在我们创建 swap 文件å‰ï¼Œæˆ‘ä»¬éœ€è¦æ£€æŸ¥ç¡¬ç›˜çš„使用情况æ¥ç¡®ä¿ç¡¬ç›˜æœ‰è¶³å¤Ÿç©ºé—´ã€‚使用下é¢çš„命令æ¥è¿›è¡Œï¼š +<code> +df -h +</code> + +输出: +<code> +Filesystem Size Used Avail Use% Mounted on +udev 474M 0 474M 0% /dev +tmpfs 99M 932K 98M 1% /run +/dev/vda1 25G 1.4G 23G 7% / +tmpfs 491M 0 491M 0% /dev/shm +tmpfs 5.0M 0 5.0M 0% /run/lock +tmpfs 491M 0 491M 0% /sys/fs/cgroup +/dev/vda15 105M 3.9M 101M 4% /boot/efi +/dev/loop0 55M 55M 0 100% /snap/core18/1705 +/dev/loop1 69M 69M 0 100% /snap/lxd/14804 +/dev/loop2 28M 28M 0 100% /snap/snapd/7264 +tmpfs 99M 0 99M 0% /run/user/1000 +</code> + +在本例ä¸ï¼Œ''Mounted on'' 一列是 ''/'' çš„ä¸€è¡Œå°±æ˜¯æˆ‘ä»¬çš„ç¡¬ç›˜ã€‚ä¾‹ä¸æˆ‘们有很多å¯ç”¨çš„空间(åªä½¿ç”¨äº† 1.4G,有 23G å¯ç”¨ï¼‰ã€‚您的使用情况很å¯èƒ½ä¼šä¸åŒã€‚ + +虽然在 swap 空间的适当大å°ä¸Šæœ‰è®¸å¤šä¸åŒçš„观点,但这其实éžå¸¸ä¾èµ–于您个人的åå¥½ä»¥åŠæ‚¨çš„应用程åºçš„需求。一般æ¥è¯´ï¼Œä¸Žç³»ç»Ÿå†…å˜å¤§å°ç›¸åŒæˆ–是内å˜å¤§å°çš„两å€çš„大尿˜¯æ¯”较好的起点。å¦å¤–一个好的ç»éªŒè§„åˆ™æ˜¯ï¼Œå¦‚æžœæ‚¨åªæ˜¯æŠŠ swap 用于内å˜çš„备用手段的è¯ï¼Œæ‰€æœ‰å¤§äºŽ 4G çš„ swap 大概都是ä¸å¿…è¦çš„。 + +__注__: + * 对想è¦å®‰è£… Mastodon 或是 Misskey 的朋å‹ä»¬ï¼šæ‚¨çš„æ•™ç¨‹é‡Œå¤§æ¦‚å·²ç»æœ‰æŽ¨èçš„ swap 大å°äº†ã€‚如果没有其实也ä¸ç”¨å¤ªæ‹…å¿ƒï¼Œå› ä¸ºå¦‚ä¸Šé¢æåˆ°çš„ï¼Œswap å¯ä»¥æœ‰å¾ˆå¤šä¸ªï¼Œåœ¨ç¼–译时如果å‘现 swap ä¸å¤Ÿäº†ï¼Œæˆ‘们完全是å¯ä»¥ä¸´æ—¶å†æ·»åŠ å¦ä¸€ä¸ª swap æ¥è‹Ÿæ´»è¿‡åŽ»çš„ã€‚ + * 编译时查看 swap 够ä¸å¤Ÿï¼šå¯ä»¥å¦å¤–开一个 ssh 窗å£ï¼Œç¨å¾®åˆ©ç”¨ä¸€ä¸‹ä¸Šé¢çš„ ''free -h'' 命令å³å¯çœ‹åˆ° swap 的剩余é‡ã€‚使用 ''while true; do free -h; sleep 3; done'' å¯ä»¥è‡ªåЍæ¯ä¸‰ç§’输出一次 swap 情况,按 ''Ctrl+C'' 退出。 + +===== 第三æ¥ï¼šåˆ›å»º swap 文件 ===== + +既然我们知é“了硬盘的å¯ç”¨ç©ºé—´ï¼Œæˆ‘们å¯ä»¥åœ¨æ–‡ä»¶ç³»ç»Ÿä¸Šåˆ›å»ºä¸€ä¸ª swap æ–‡ä»¶äº†ã€‚æˆ‘ä»¬ä¼šåœ¨æ ¹ç›®å½•ï¼ˆ''/'')下创建一个å«åš ''swapfile'' çš„ã€æˆ‘们想è¦çš„大å°çš„æ–‡ä»¶ã€‚ + +==== 检查文件系统 ==== + +__注__:检查文件系统这段原文没有。但是ä¿é™©èµ·è§è¿˜æ˜¯å¢žåŠ è¿™ä¸€æ®µè¯´æ˜Žä¸€ä¸‹ã€‚ + +创建文件的方å¼ä¸åŒæ–‡ä»¶ç³»ç»Ÿå¯èƒ½æœ‰ä¸åŒã€‚使用一下命令查看您的文件系统: +<code> +mount | grep -w / +</code> + +输出: +<code> +/dev/vda1 on / type ext4 (rw,relatime,errors=remount-ro) +</code> + +紧跟在 ''type'' åŽçš„å³ä¸ºæ–‡ä»¶ç³»ç»Ÿç±»åž‹ï¼ˆä¾‹ä¸ä¸º ''ext4'')。其实我ä¸è®¤ä¸ºæ‚¨ä¼šé‡åˆ°ä¸æ˜¯ ''ext4'' 的情况。 + +若的确为 ''ext4'',您å¯ä»¥ç›´æŽ¥ä½¿ç”¨ ''fallocate 途径''(è§ä¸‹ï¼‰ï¼Œè¿™ç§æ–¹æ³•会快一些。 + +若为 ''brtfs'',请跟éšè¿™é‡Œ ArchWiki 的英文教程 [[https://wiki.archlinux.org/index.php/Btrfs#Swap_file|Btrfs#Swap_file]] 。 + +è‹¥ä¸ºéž ''ext4'' 的文件系统或是 ''fallocate 途径'' å‡ºçŽ°é”™è¯¯ï¼Œå› ä¸ºæˆ‘ä¸æ¸…æ¥šè¯¥æ–‡ä»¶ç³»ç»Ÿçš„æ”¯æŒæƒ…况,请å°è¯• ''dd 途径''(è§ä¸‹ï¼‰ã€‚这个途径会慢一些,但最稳定。 + +==== fallocate 途径 ==== + +创建 swap æ–‡ä»¶çš„æœ€å¥½æ–¹å¼æ˜¯ä½¿ç”¨ ''fallocate'' 程åºã€‚è¿™ä¸ªå‘½ä»¤å³æ—¶åˆ›å»ºä¸€ä¸ªæŒ‡å®šå¤§å°çš„æ–‡ä»¶ã€‚ + +å› ä¸ºæˆ‘ä»¬ä¾‹ä¸çš„æœåŠ¡å™¨æœ‰ 1G 的内å˜ï¼Œæˆ‘们在本教程ä¸ä¼šåˆ›å»º 1G çš„ swap æ–‡ä»¶ã€‚è¯·æ ¹æ®æ‚¨æœåŠ¡å™¨çš„éœ€è¦è°ƒæ•´ï¼š +<code> +sudo fallocate -l 1G /swapfile +</code> + +我们å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤ç¡®è®¤æˆ‘们分é…了æ£ç¡®å¤§å°çš„空间: +<code> +ls -lh /swapfile +</code> + +输出: +<code> +-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile +</code> +我们的文件已ç»ç”¨æ£ç¡®çš„大å°çš„空间创建了。 + +==== dd 途径 ==== + +__注__:这段原文没有。但是ä¿é™©èµ·è§è¿˜æ˜¯å¢žåŠ è¿™ä¸€æ®µè¯´æ˜Žä¸€ä¸‹ã€‚ + +创建 swap 文件的最ä¿é™©çš„æ–¹å¼æ˜¯ä½¿ç”¨ ''dd'' 程åºã€‚我们使用这个命令往文件ä¸å†™å…¥ä¸€å®šå¤§å°çš„空白数æ®ï¼Œä»Žè€Œä½¿æ–‡ä»¶å˜ä¸ºæˆ‘们想è¦çš„大å°ã€‚ + +å› ä¸ºæˆ‘ä»¬ä¾‹ä¸çš„æœåŠ¡å™¨æœ‰ 1G 的内å˜ï¼Œæˆ‘们在本教程ä¸ä¼šåˆ›å»º 1G çš„ swap æ–‡ä»¶ã€‚è¯·æ ¹æ®æ‚¨æœåŠ¡å™¨çš„éœ€è¦è°ƒæ•´ï¼š +<code> +sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress +</code> +注æ„这里您需è¦åšä¸€å®šçš„æ¢ç®—ï¼šå‘½ä»¤é‡Œçš„ ''1024'' å•ä½ä¸º MB,若您需è¦åˆ›å»ºä¾‹å¦‚ 2G 的文件,则应乘 1024 æ¢ç®—为 ''2048'',将命令ä¸çš„ ''1024'' 改为 ''2048'' 命令å˜ä¸ºï¼š +<code> +sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress +</code> + +我们å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤ç¡®è®¤æˆ‘们分é…了æ£ç¡®å¤§å°çš„空间: +<code> +ls -lh /swapfile +</code> + +输出: +<code> +-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile +</code> +我们的文件已ç»ç”¨æ£ç¡®çš„大å°çš„空间创建了。 + +===== 第四æ¥ï¼šå¯ç”¨ swap 文件 ===== + +æ—¢ç„¶æˆ‘ä»¬å·²ç»æœ‰äº†ä¸€ä¸ªæ£ç¡®å¤§å°çš„æ–‡ä»¶ï¼Œæˆ‘ä»¬éœ€è¦æŠŠè¿™ä¸ªæ–‡ä»¶çœŸæ£å˜ä¸º swap 空间。 + +首先,我们需è¦é”定文件的æƒé™ï¼Œä½¿å¾—åªæœ‰ root æƒé™çš„用户å¯ä»¥è¯»åˆ°é‡Œé¢çš„内容。这阻æ¢äº†æ™®é€šç”¨æˆ·è®¿é—®è¿™ä¸ªæ–‡ä»¶ï¼Œä¸ç„¶ä¼šæœ‰å¾ˆå¤§çš„安全问题。 + +使用以下命令使文件åªèƒ½è¢« root 访问: +<code> +sudo chmod 600 /swapfile +</code> + +ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤éªŒè¯æƒé™çš„æ”¹å˜ï¼š +<code> +ls -lh /swapfile +</code> + +输出: +<code> +-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile +</code> + +''-rw------- 1 root root'':您å¯ä»¥çœ‹åˆ°ï¼Œåªæœ‰ root 用户对应ç€å¼€å¯çš„è¯»å†™æ ‡è®°ã€‚ + +我们现在å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤æ ‡è®°è¿™ä¸ªæ–‡ä»¶ä¸º swap 空间: +<code> +sudo mkswap /swapfile +</code> + +输出: +<code> +Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) +no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf +</code> + +åœ¨æ ‡è®°åŽï¼Œæˆ‘们å¯ä»¥å¯ç”¨ swap 文件,让我们的系统å¯ä»¥å¼€å§‹ä½¿ç”¨å®ƒï¼š +<code> +sudo swapon /swapfile +</code> + +éªŒè¯ swap å·²ç»å¯ç”¨ï¼š +<code> +sudo swapon --show +</code> + +输出: +<code> +NAME TYPE SIZE USED PRIO +/swapfile file 1024M 0B -2 +</code> + +我们å¯ä»¥æ£€æŸ¥ ''free'' 工具的输出æ¥å†æ¬¡éªŒè¯ï¼š +<code> +free -h +</code> + +输出: +<code> + total used free shared buff/cache available +Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi +Swap: 1.0Gi 0B 1.0Gi +</code> + +我们的 swap å·²ç»æˆåŠŸå»ºç«‹ï¼Œæˆ‘ä»¬çš„ç³»ç»Ÿä¼šåœ¨å¿…è¦æ—¶å¼€å§‹ä½¿ç”¨å®ƒã€‚ + +===== 第五æ¥ï¼šä½¿ swap å˜æ°¸ä¹… ===== + +我们上é¢çš„æ”¹å˜å¼€å¯äº† swap 文件。但是,如果我们é‡å¯ï¼ŒæœåС噍ä¸ä¼šè‡ªåŠ¨ä¿æŒ swap 的设置。我们å¯ä»¥å°† swap æ–‡ä»¶æ·»åŠ åˆ° ''/etc/fstab'' 䏿¥æ”¹å˜è¿™ä¸€ç‚¹ã€‚ + +备份 ''/etc/fstab'' 文件,以å…出错: +<code> +sudo cp /etc/fstab /etc/fstab.bak +</code> + +æ·»åŠ swap 文件的信æ¯åˆ° ''/etc/fstab'' 文件的尾部: +<code> +echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab +</code> + +æŽ¥ä¸‹æ¥æˆ‘ä»¬ä¼šå¤æŸ¥ä¸€äº›æˆ‘们å¯ä»¥ä¼˜åŒ–çš„ swap 空间的设置。 + +===== ç¬¬å…æ¥ï¼šä¼˜åŒ– swap 设置 ===== + +您å¯ä»¥é…置一些选项æ¥å½±å“您系统与 swap 有关的性能。 + +==== 设置 swappiness ==== + +''swappiness'' 傿•°é…置了系统在内å˜ä¸Ž swap 空间之间交æ¢çš„频率。''swappiness'' å¯ä»¥æ˜¯ 0 到 100 之间的值。 + +在 ''swappiness'' 接近 0 时,除éžç»å¯¹éœ€è¦ï¼Œç³»ç»Ÿä¸ä¼šæŠŠæ•°æ®äº¤æ¢åˆ°ç¡¬ç›˜ä¸Šã€‚è¦è®°ä½ï¼šswap 文件的æ“作很“昂贵â€ï¼Œå› 为比起æ“ä½œå†…å˜æ¥ï¼Œswap çš„æ“作时间长很多,而这会导致显著的性能下é™ã€‚让系统尽å¯èƒ½ä¸ä¾èµ– swap 总体æ¥è¯´ä¼šä½¿ç³»ç»Ÿæ›´å¿«ã€‚ + +''swappiness'' 接近 100 时,系统会尽å¯èƒ½æŠŠæ•°æ®æ”¾åˆ° swap é‡Œï¼Œä½¿å†…å˜æ›´å¤šç©ºä½™ã€‚看应用程åºçš„内å˜ä½¿ç”¨çŠ¶å†µä»¥åŠæœåŠ¡å™¨çš„ç”¨é€”ï¼Œè¿™ä¹Ÿæœ‰å¯èƒ½åœ¨æŸäº›æƒ…况下更好一些。 + +我们å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤æŸ¥çœ‹å½“å‰çš„ ''swappiness'': +<code> +cat /proc/sys/vm/swappiness +</code> + +输出: +<code> +60 +</code> + +对于桌é¢ç”µè„‘,60 çš„ ''swappiness'' å¹¶ä¸å。对于æœåŠ¡å™¨ï¼Œæ‚¨å¯èƒ½æƒ³è¦æŠŠå®ƒæ”¹åˆ°æŽ¥è¿‘于 0. + +我们å¯ä»¥ä½¿ç”¨ ''sysctl'' 命令æ¥å°† ''swappiness'' 更改至ä¸åŒçš„值。 + +例如,将 ''swappiness'' 更改到 10,我们å¯ä»¥ä½¿ç”¨å‘½ä»¤ï¼š +<code> +sudo sysctl vm.swappiness=10 +</code> + +输出: +<code> +vm.swappiness = 10 +</code> + +这一设置在é‡å¯åŽä¼šæ¶ˆå¤±ã€‚我们å¯ä»¥åœ¨ ''/etc/sysctl.conf'' ä¸åŠ å…¥ä¸€è¡Œæ¥åœ¨é‡å¯åŽè‡ªåŠ¨è®¾ç½® ''swappiness''。使用 ''nano'' æ¥ç¼–辑: +<code> +sudo nano /etc/sysctl.conf +</code> + +åœ¨æ–‡ä»¶æœ€åº•éƒ¨ï¼ŒåŠ å…¥ä¸€è¡Œè®¾å®šæ‚¨é€‰å®šçš„ ''swappiness'' 值: +<code> +vm.swappiness=10 +</code> + +在完æˆåŽï¼Œä¿å˜å¹¶å…³é—文件。 + +==== 调整缓å˜åŽ‹åŠ›è®¾å®š ==== + +您å¯èƒ½ä¼šæƒ³æ›´æ”¹å¦ä¸€ç›¸å…³çš„值 ''vfs_cache_pressure''。这项设定é…置系统回收 inode å’Œ dentry ä¿¡æ¯ç¼“å˜çš„å好程度。 + +基本上,这些是文件系统的访问数æ®ã€‚ä¸€èˆ¬ä¸Šï¼Œè¿™äº›ä¿¡æ¯æŸ¥æ‰¾çš„èŠ±é”€å¤§ï¼Œè€Œä½¿ç”¨çš„é¢‘çŽ‡åˆæžé«˜ï¼Œæ‰€ä»¥ç³»ç»Ÿç¼“å˜è¿™äº›æ•°æ®æ˜¯æžå¥½çš„ã€‚ä½ å¯ä»¥è®¿é—® ''proc''æ–‡ä»¶ç³»ç»Ÿæ¥æŸ¥çœ‹å½“å‰è®¾å®šå€¼ï¼š +<code> +cat /proc/sys/vm/vfs_cache_pressure +</code> + +__注__:æ¤å€¼èŒƒå›´ä¸º 0 到 500,100 是默认值,一般认为是比较ä¸åº¸çš„一个值。这个值的推è范围我在网上也暂时没有找到å¦å¤–çš„ä¾æ®ï¼Œæ‰€ä»¥å¯¹ä¸‹æ–‡çš„“移除的速度太快â€çš„说法ä¸äºˆç½®è¯„。基本上ä¸è¦è®¾åˆ°å¤ªæŽ¥è¿‘于 0 应该都还行,或者也å¯ä»¥ç›´æŽ¥ä¿ç•™é»˜è®¤å€¼ã€‚ + +åœ¨è¿™æ ·çš„è®¾å®šæ¥çœ‹ï¼Œæˆ‘们的系统将 inode ä¿¡æ¯ç§»é™¤çš„速度太快了。我们å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤è®¾ç½®ä¸ºä¸€ä¸ªæ›´ä¿å®ˆçš„值: +<code> +sudo sysctl vm.vfs_cache_pressure=50 +</code> + +输出: +<code> +vm.vfs_cache_pressure = 50 +</code> + +åŒæ ·ï¼Œè¿™ä¸ªå€¼è®¾ç½®é‡å¯å°±ä¼šæ¶ˆå¤±ã€‚å’Œ ''swappiness'' çš„æ“ä½œä¸€æ ·ï¼Œæˆ‘ä»¬å¯ä»¥åœ¨é…ç½®æ–‡ä»¶é‡ŒåŠ å…¥è¿™ä¸ªè®¾å®šä½¿é‡å¯åŽè‡ªåŠ¨è®¾ç½®ã€‚''nano'' 编辑器打开文件: +<code> +sudo nano /etc/sysctl.conf +</code> + +åœ¨æ–‡ä»¶åº•éƒ¨åŠ å…¥ä¸€è¡Œè®¾å®šæ‚¨é€‰å®šçš„å€¼ï¼š +<code> +vm.vfs_cache_pressure=50 +</code> + +修改完æˆåŽä¿å˜å¹¶å…³é—文件。 + +===== 总结 ===== + +(没什么东西,ä¸è¯‘了。)