Làm cách nào để định cấu hình swappiness?


345

Tôi cần một cách từng bước, đơn giản và dễ dàng để cấu hình swappiness.


17
Một lớp lótsudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
redanimalwar

8
@redanimalwar bạn cũng cần chạy sudo sysctl -pđể tải giá trị swappiness mới từ tệp sysctl.conf, nếu không, thay đổi chỉ áp dụng cho lần khởi động lại tiếp theo.
waldyrious

Câu trả lời:


509

Nhân Linux cung cấp một cài đặt có thể điều chỉnh để kiểm soát tần suất sử dụng tệp hoán đổi, được gọi là swappiness.

Cài đặt swappiness bằng 0 có nghĩa là đĩa sẽ được tránh trừ khi thực sự cần thiết (bạn hết bộ nhớ), trong khi cài đặt swappiness 100 có nghĩa là các chương trình sẽ được hoán đổi sang đĩa gần như ngay lập tức.

Hệ thống Ubuntu đi kèm với mặc định là 60, có nghĩa là tệp hoán đổi sẽ được sử dụng khá thường xuyên nếu mức sử dụng bộ nhớ chiếm khoảng một nửa RAM của tôi. Bạn có thể kiểm tra giá trị trao đổi của hệ thống của riêng bạn bằng cách chạy:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Vì tôi có 4 GB RAM, tôi muốn giảm xuống còn 10 hoặc 15. Tệp hoán đổi sau đó sẽ chỉ được sử dụng khi mức sử dụng RAM của tôi khoảng 80 hoặc 90 phần trăm. Để thay đổi giá trị swappiness hệ thống, mở /etc/sysctl.confdưới dạng root . Sau đó, thay đổi hoặc thêm dòng này vào tệp:

vm.swappiness = 10

Khởi động lại để thay đổi có hiệu lực.

Bạn cũng có thể thay đổi giá trị trong khi hệ thống của bạn vẫn đang chạy với:

sysctl vm.swappiness=10

Bạn cũng có thể xóa trao đổi của mình bằng cách chạy swapoff -avà sau đó swapon -alà root thay vì khởi động lại để đạt được hiệu quả tương tự.

Để tính Công thức hoán đổi của bạn:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

vậy tổng cộng là 3950/100 = 39,5 * 10 = 395

Vì vậy, ý nghĩa của nó là khi 10% (395 MB) ram còn lại thì nó sẽ bắt đầu sử dụng trao đổi.


                                          Cứu giúp . Ubuntu. Trao đổi

                                           Swappiness là gì

Tham số swappiness kiểm soát xu hướng của kernel để di chuyển các tiến trình ra khỏi bộ nhớ vật lý và vào đĩa trao đổi. Vì các đĩa chậm hơn nhiều so với RAM, điều này có thể dẫn đến thời gian phản hồi chậm hơn cho hệ thống và ứng dụng nếu các quá trình di chuyển quá mạnh ra khỏi bộ nhớ.

  • swappiness có thể có giá trị từ 0 đến 100.
  • swappiness=0:
    • Kernel phiên bản 3.5 trở lên: vô hiệu hóa tính hoán đổi.
    • Phiên bản kernel cũ hơn 3.5: tránh các quá trình hoán đổi ra khỏi bộ nhớ vật lý càng lâu càng tốt.
  • swappiness=1:
    • Kernel phiên bản 3.5 trở lên: swappiness tối thiểu mà không vô hiệu hóa hoàn toàn.
  • swappiness=100:
    • Yêu cầu kernel tích cực trao đổi các tiến trình ra khỏi bộ nhớ vật lý và chuyển chúng sang bộ đệm.

Xem http://en.wikipedia.org/wiki/Swappiness .

Cài đặt mặc định trong Ubuntu là swappiness=60. Giảm giá trị mặc định của swappiness có thể sẽ cải thiện hiệu suất tổng thể cho cài đặt máy tính để bàn điển hình của Ubuntu. Giá trị swappiness=10được khuyến nghị, nhưng hãy thử nghiệm.


Thí dụ

Bắt đầu sử dụng trao đổi ở 91% :

nhập mô tả hình ảnh ở đây Như tôi đã cấu hình hệ thống của mình & vm để sử dụng RAM ở mức 90% , ở mức 90% không có sự hoán đổi.

Sau đó, tôi đã mở một số ứng dụng như Firefox & Shutter và nó bắt đầu hoán đổi vì mức sử dụng RAM là trên 90% .


118
Swappiness of 100 không làm cho các chương trình bị hoán đổi ngay lập tức, cũng như giá trị hoán đổi 60 hoặc 90 có nghĩa là được sử dụng khi ram đầy 60 hoặc 90%. Đó là tỷ lệ ưu tiên cho việc đánh cắp các trang từ bộ đệm so với trao đổi mọi thứ để giải phóng bộ nhớ khi không đủ. Giá trị thấp sẽ cực kỳ thích đánh cắp các trang từ bộ đệm và giá trị cao thích mạnh mẽ để thử và trao đổi các trang. Cài đặt chỉ có bất kỳ hiệu ứng nào khi bộ nhớ (gần như) tất cả được sử dụng và hạt nhân phải chọn cách giải phóng một số.
psusi

67
Bạn cần chỉ ra rằng RAM KHÔNG bị chiếm dụng bởi các chương trình đang chạy được sử dụng làm bộ đệm đĩa ... vì vậy, bằng cách giảm tính dễ thay đổi, bạn tăng cơ hội chương trình không bị tráo đổi, nhưng đồng thời giảm kích thước của bộ đệm đĩa, có thể làm cho truy cập đĩa chậm hơn. Vì vậy, hiệu ứng của cài đặt này đối với hiệu suất thực tế không đơn giản như vậy ... tất nhiên bạn rất sẵn lòng thử nghiệm nhưng tôi nghi ngờ mặc định được đặt bởi những người hiểu đủ về chủ đề này :)
Sergey

14
@Sergey và điều trớ trêu là những người có RAM nhỏ rất có thể thử mọi thủ thuật họ có thể gặp để tăng hiệu suất và nhiều khả năng là những người mà 60 hoặc thậm chí cao hơn sẽ là con số tốt nhất. Những người trong chúng ta đặt nó thành 10 vì chúng ta có hàng tấn RAM sẽ không tăng nhiều như họ sẽ mất nếu họ làm như vậy.
Jon Hanna

6
@Freedom_Ben: Xem linuxHRyram.com :)
Sergey

5
Chỉ cần để lại một cuộc thảo luận tương tự ở đây - unix.stackexchange.com/questions/88693/iêu
Elijah Lynn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.