我最近买了一个 120GB 的 SSD 硬盘,想用它来调整我的操作系统。我发现了一些教程我这样做了,并遵循了它,但发现了一些问题。
我想将值更改为 60,因此我在末尾vm.dirty_ratio
添加了此行:。然后我重新启动计算机以应用更改。vm.dirty_ratio = 60
/etc/sysctl.conf
现在当我使用sysctl vm.dirty_ratio
它时它会返回 10,但我认为vm.dirty_background_ratio
它有效。
我该如何设置它,或者我可能以错误的方式读取它?谢谢帮助!
--编辑-- /etc/sysctl.conf:
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#
#kernel.domainname = example.com
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
##############################################################3
# Functions previously found in netbase
#
# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
#My SSD tweaks
vm.swappiness = 5
vm.dirty_background_ratio = 5
vm.dirty_ratio = 60
的输出sudo free --human
,因为我无法将其发布在评论中:
total used free shared buffers cached
Mem: 3,8G 3,4G 473M 102M 65M 935M
-/+ buffers/cache: 2,4G 1,4G
Swap: 3,9G 280K 3,9G
答案1
- 设置如此高的 vm.dirty_ratio 可能不是一个好主意。请参阅:http://lwn.net/Articles/572911/
- 更新后的设置应添加到 /etc/sysctl.d 中的文件(例如类似
/etc/sysctl.d/60-local-dirty-bytes.conf
),因为当前启动时不会读取 sysctl.conf。请参阅:https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1388068 pm-utils
重置 vm.dirty_bytes 设置。您需要禁用/usr/lib/pm-utils/power.d/laptop-mode
重置这些变量的脚本,例如,通过exit 0
在此脚本的第二行放置一个。请参阅:https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/1407818
答案2
根据最后一条评论:vm.dirty_ratio
只是缓冲要以更大的块写入的页面,因此对您的 SSD 生命周期并不重要(我的标准是 10)。fstab中的noatime
和discard
选项(仅当您的磁盘支持 trim 时才使用后者)对于保持较低的写入次数更有用。
我也为我的 SSD 磁盘实现了data=writeback
此功能fstab
,但只有当你在配有 UPS 的 PC 上运行时(或有带可用电池的笔记本电脑)才能这样做
fstab
另外:在更改任何内容之前,请务必制作备份!