Câu trả lời ngắn gọn:
Đặt tệp hoán đổi của bạn thành:
round(sqrt(RAM))
nếu bạn không sử dụng chế độ ngủ đông
RAM+round(sqrt(RAM))
nếu bạn sử dụng ngủ đông
Đặt của bạn swappiness
thành 10 trên máy tính để bàn, nhưng không phải trên máy chủ!
Câu trả lời dài:
Trong quá khứ:
Quy tắc sử dụng trong 25 năm qua là tối thiểu 1xRAM và tối đa 2xRAM, vì vậy đó là những gì bạn sẽ thấy được trích dẫn mọi lúc.
Mức tối thiểu đó đã được đặt lại vào thời kỳ đồ đá khi tôi còn là một thiếu niên và khủng long vẫn đi lang thang trên Trái đất và vì RAM quá đắt và bạn hoàn toàn cần không gian hoán đổi đó để có thể hoàn thành mọi thứ.
Mức tối đa được đặt vào thời điểm đó vì lợi nhuận giảm dần: quá chậm để phải trao đổi quá nhiều bộ nhớ vì truy cập ổ cứng chậm hơn 1000 lần so với RAM: tốt trong trường hợp khẩn cấp, nhưng không thực sự tốt cho sử dụng hàng ngày! Vào thời điểm đó, khi bạn hết dung lượng trao đổi, đó là lúc để thêm RAM! (điều này vẫn đúng cho đến ngày hôm nay).
Hiện tại:
Nếu bạn không sử dụng ngủ đông và bộ nhớ của bạn là vượt quá 1GByte quy định mới của ngón tay cái là round(sqrt(RAM))
nơi RAM
rõ ràng là dung lượng RAM của bạn trong GB và sqrt
căn bậc hai. :-)
Nếu bạn sử dụng chế độ ngủ đông, bạn cần có thể hoán đổi toàn bộ dung lượng RAM + đã hoán đổi RAM sang đĩa, do đó công thức trở thành: RAM+round(sqrt(RAM))
Quy tắc giảm lợi nhuận vẫn giữ tối đa cho đến ngày hôm nay, nhưng trừ khi bạn kiểm tra mức sử dụng thực tế của mình, việc sử dụng 2xRAM chỉ là một sự lãng phí không gian đĩa , vì vậy đừng sử dụng tối đa trừ khi bạn hết dung lượng trao đổi bằng các phương pháp khác .
Tất cả những thứ này cùng nhau cung cấp cho bạn bảng sau: (3 cột cuối biểu thị không gian hoán đổi)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
Trên đây chỉ là một quy tắc của ngón tay cái; Đó không phải là định luật hấp dẫn!
Bạn có thể phá vỡ quy tắc này (không giống như luật hấp dẫn) nếu trường hợp sử dụng cụ thể của bạn khác!
Mẹo chuyên nghiệp: Luôn phân bổ SWAP khi bắt đầu ổ cứng vì các đầu cần di chuyển ít hơn vào bên trong đĩa.
Có: Trên SSD, việc bạn định vị vùng trao đổi thực sự không còn quan trọng nữa khi chúng sử dụng đường hầm lượng tử thay vì đầu di chuyển và SSD hiện đại sử dụng tất cả các ô nhớ của chúng (ngay cả không gian chưa phân bổ) để ngăn chặn sự suy giảm lượng tử.
Cách kiểm tra xem việc sử dụng trao đổi của bạn có khác với quy tắc "chung" hay không:
Chỉ cần thực hiện:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
sẽ cung cấp cho bạn một danh sách tất cả các chương trình đang được hoán đổi (với chương trình sử dụng không gian hoán đổi nhiều nhất ở trên cùng)
Nếu bạn đang sử dụng nhiều hơn thì một vài KB: thay đổi kích thước thành nhiều hơn mức tối thiểu, nếu không, đừng bận tâm ...
Nếu bạn đang ở trên máy chủ, hãy ngừng đọc ngay bây giờ: bạn đã sẵn sàng!
Nếu bạn đang sử dụng máy khách để bàn / máy tính xách tay (không phải máy chủ), bạn muốn GUI của mình phản hồi nhanh nhất có thể và chỉ trao đổi khi bạn thực sự cần . Ubuntu đã được tối ưu hóa để trao đổi sớm khi sử dụng máy chủ, nhưng trên máy khách của bạn, bạn muốn chỉnh sửa bức ảnh thô 250 Mega pixel khổng lồ đó gimp
để nhanh chóng , vì vậy, đặt swappiness
thành 10 sẽ giữ cho hạt nhân không bị tráo đổi quá sớm, trong khi đảm bảo nó không ' trao đổi quá muộn:
Nếu bạn có một sysctl.conf
tập tin,
sudo nano /etc/sysctl.conf
HOẶC LÀ
Nếu bạn có một sysctl.d
thư mục nhưng không có sysctl.conf
tệp, hãy tạo một tệp mới:
sudo nano /etc/sysctl.d/35_swap.conf
và trong cả hai trường hợp thêm:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
đến cuối tệp, lưu tệp ( Ctrl+ XY+ Entertrong nano) và thực hiện a:
sysctl --system
để tải lại tham số hoặc thực hiện cách tiếp cận Window $ và khởi động lại ... :-)