Câu hỏi Làm thế nào để cấu hình swappiness?


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


298
2018-02-13 18:31


gốc


Lót sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
@redanimalwar bạn cũng cần phải 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ác câu trả lời:


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

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

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

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

Khi tôi có 4 GB RAM, tôi muốn biến nó xuống 10 hoặc 15. Tệp hoán đổi sẽ chỉ được sử dụng khi sử dụng RAM của tôi 80 hoặc là 90 phần trăm. Để thay đổi giá trị swappiness hệ thống, mở /etc/sysctl.conf như nguồn gốc. 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 chạy với:

sysctl vm.swappiness=10

Bạn cũng có thể xóa hoán đổi của mình bằng cách chạy swapoff -a và sau đó swapon -a như là gốc 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

tổng số là 3950/100 = 39,5 * 10 = 395

Điều đó có nghĩa là khi 10% (395 MB) ram còn lại sau đó nó sẽ bắt đầu sử dụng swap.


Cứu giúp . Ubuntu. Hoán đổi

Swappiness là gì

Tham số swappiness kiểm soát xu hướng của hạt nhân để di chuyển các tiến trình ra khỏi bộ nhớ vật lý và vào đĩa trao đổi. Bởi vì đĩ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 đối với hệ thống và ứng dụng nếu các quá trình được chuyển quá mạnh khỏi bộ nhớ.

  • swappiness có thể có giá trị từ 0 đến 100.
  • swappiness=0:
    • Kernel phiên bản 3.5 và mới hơn: vô hiệu hóa tính hoán đổi.
    • Phiên bản hạt nhân cũ hơn 3.5: tránh trao đổi các quy trình trong 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: tối thiểu swappiness mà không vô hiệu hóa nó hoàn toàn.
  • swappiness=100:
    • Yêu cầu hạt nhân chuyển đổi mạnh mẽ các tiến trình ra khỏi bộ nhớ vật lý và chuyển chúng sang bộ nhớ đệm trao đổi.

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 một cài đặt máy tính để bàn Ubuntu điển hình. Giá trị của swappiness=10 được khuyến khích, nhưng hãy thử nghiệm.


Thí dụ

Bắt đầu sử dụng hoán đổi tại 91%:

enter image description here Như tôi đã cấu hình hệ thống & vm của mình để sử dụng RAM tại 90%, tại 90% không có sự trao đổi.

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


453
2018-02-13 18:33



Swappiness 100 không làm cho các chương trình được hoán đổi ngay lập tức, cũng không có giá trị 60 hoặc 90 có nghĩa là trao đổi được sử dụng khi ram là 60 hoặc 90% đầy đủ. Nó là một tỷ lệ ưu tiên để ăn cắp các trang từ bộ nhớ cache so với trao đổi những thứ ra để giải phóng một số bộ nhớ khi không có đủ. Một giá trị thấp sẽ mạnh mẽ thích ăn cắp các trang từ bộ nhớ cache, và một giá trị cao mạnh mẽ thích để thử và trao đổi các trang ra ngoài. Cài đặt này chỉ có tác dụng khi bộ nhớ là (gần) 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
Bạn cần phải chỉ ra rằng RAM không bị chiếm đóng bởi các chương trình đang chạy được sử dụng như bộ đệm đĩa ... vì vậy, bằng cách giảm sự thay đổi, bạn tăng cơ hội của một chương trình không được hoán đổi, nhưng đồng thời giảm kích thước của bộ nhớ cache đĩ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 trên hiệu suất thực tế không đơn giản ... bạn được chào đón để thử nghiệm tất nhiên nhưng tôi nghi ngờ các cài đặt mặc định được đặt bởi những người hiểu đủ về chủ đề này :) - Sergey
@ Sergey và sự mỉa mai của nó là những người có RAM nhỏ có nhiều khả năng thử mọi thủ thuật mà họ có thể bắt gặp để tăng hiệu suất và có nhiều khả năng trở thành người mà 60 hoặc thậm chí cao hơn sẽ là nhân vật tốt nhất. Những người trong số chúng tôi đặt nó thành 10 vì chúng tôi đã tấn RAM không đạt được nhiều như họ sẽ mất nếu họ làm như vậy. - Jon Hanna
@Freedom_Ben: Xem linuxatemyram.com :) - Sergey
Chỉ để lại một cuộc thảo luận tương tự ở đây - unix.stackexchange.com/questions/88693/… - Elijah Lynn