Cách thay đổi Swappiness của hệ thống Linux của bạn

theanh

Administrator
Nhân viên

Swappiness là gì?​

Hầu hết người dùng Linux đã cài đặt bản phân phối trước đó đều nhận thấy sự tồn tại của "không gian hoán đổi" trong giai đoạn phân vùng (thường được tìm thấy dưới dạng /sda5). Đây là không gian chuyên dụng trong ổ cứng của bạn, thường được đặt thành ít nhất gấp đôi dung lượng RAM của bạn và nó tạo nên tổng bộ nhớ ảo của hệ thống. Không gian hoán đổi cũng có thể được cung cấp bởi cái gọi là tệp hoán đổi, mà bạn có thể sử dụng trong trường hợp bạn không thể tạo phân vùng hoán đổi chuyên dụng. Tuy nhiên, nói chung, phân vùng hoán đổi được ưa chuộng hơn tệp hoán đổi về mặt tốc độ. Thỉnh thoảng, nhân Linux sử dụng không gian hoán đổi này bằng cách sao chép các khối từ RAM của bạn vào hoán đổi, cho phép các tiến trình đang hoạt động yêu cầu nhiều bộ nhớ hơn mức bộ nhớ có sẵn về mặt vật lý để chạy.

Swappiness là tham số nhân xác định lượng (và tần suất) nhân Linux của bạn sẽ sao chép nội dung RAM vào hoán đổi. Giá trị mặc định của tham số này là "60" và có thể lấy bất kỳ giá trị nào từ "0" đến "100". Giá trị của tham số swappiness càng cao, thì kernel của bạn sẽ hoán đổi càng mạnh.

Tại sao phải thay đổi?​

Giá trị mặc định là giải pháp phù hợp với tất cả, không thể có hiệu quả như nhau trong mọi trường hợp sử dụng riêng lẻ, thông số kỹ thuật phần cứng và nhu cầu của người dùng. Hơn nữa, swappiness của hệ thống là yếu tố chính quyết định chức năng tổng thể và hiệu suất tốc độ của hệ điều hành. Điều đó nói lên rằng, điều rất quan trọng là phải hiểu cách thức hoạt động của swappiness và cách các cấu hình khác nhau của phần tử này có thể cải thiện hoạt động của hệ thống và do đó là trải nghiệm người dùng hàng ngày của bạn.

Vì bộ nhớ RAM lớn hơn và rẻ hơn rất nhiều so với trước đây, nên hiện nay có rất nhiều người dùng có đủ bộ nhớ để hầu như không bao giờ cần sử dụng tệp hoán đổi. Lợi ích rõ ràng có được từ điều này là không có tài nguyên hệ thống nào bị chiếm dụng bởi quá trình hoán đổi và các tệp được lưu trong bộ nhớ đệm không được di chuyển qua lại từ RAM sang bộ nhớ hoán đổi và ngược lại Versa mà không có lý do.

Làm thế nào để thay đổi Swappiness?​

Giá trị tham số swappiness được lưu trữ trong một tệp văn bản cấu hình đơn giản nằm trong /proc/sys/vm và được đặt tên là "swappiness". Nếu bạn điều hướng đến đó thông qua trình quản lý tệp, bạn sẽ có thể định vị tệp và mở tệp đó để kiểm tra swappiness của hệ thống. Bạn cũng có thể kiểm tra hoặc thay đổi thông qua thiết bị đầu cuối (nhanh hơn) bằng cách nhập lệnh sau:
Mã:
sudo sysctl vm.swappiness=10
hoặc bất kỳ giá trị nào khác giữa “0” và “100” thay vì giá trị “10” mà tôi đã sử dụng. Để đảm bảo giá trị swappiness đã được thay đổi chính xác thành giá trị mong muốn, bạn chỉ cần nhập:
Mã:
cat /proc/sys/vm/swappiness
trên thiết bị đầu cuối một lần nữa và giá trị đang hoạt động sẽ được xuất ra.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22421%22%3E%3C/svg%3E


Thay đổi này có hiệu lực ngay lập tức đối với hoạt động của hệ thống và do đó không cần khởi động lại. Trên thực tế, khởi động lại sẽ khôi phục lại giá trị swappiness về giá trị mặc định (60). Nếu bạn đã kiểm tra kỹ lưỡng giá trị swappiness mong muốn và thấy rằng nó hoạt động đáng tin cậy, bạn có thể thực hiện thay đổi vĩnh viễn bằng cách điều hướng đến /etc/sysctl.conf, đây là một tệp cấu hình văn bản khác. Bạn có thể mở tệp này dưới dạng root (quản trị viên) và thêm dòng sau vào cuối để xác định giá trị swappiness: vm.swappiness="giá trị mong muốn của bạn tại đây". Sau đó, lưu tệp văn bản và bạn đã hoàn tất!


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22421%22%3E%3C/svg%3E

Các yếu tố cần cân nhắc​

Có một số phép toán liên quan đến khả năng hoán đổi cần được cân nhắc khi thay đổi cài đặt của bạn. Giá trị tham số được đặt thành "60" có nghĩa là hạt nhân của bạn sẽ hoán đổi khi RAM đạt đến 40% dung lượng. Đặt thành "100" có nghĩa là hạt nhân của bạn sẽ cố gắng hoán đổi mọi thứ. Đặt thành 10 (như tôi đã làm trong hướng dẫn này) có nghĩa là swap sẽ được sử dụng khi RAM đầy 90%, vì vậy nếu bạn có đủ bộ nhớ RAM, đây có thể là một tùy chọn an toàn giúp cải thiện hiệu suất hệ thống của bạn một cách dễ dàng.

Tuy nhiên, một số người dùng muốn có toàn bộ chiếc bánh và điều đó có nghĩa là họ đặt hoán đổi thành "1" hoặc thậm chí là "0". "1" là cài đặt "hoán đổi chủ động" tối thiểu có thể trong khi "0" có nghĩa là vô hiệu hóa hoàn toàn việc hoán đổi và chỉ trở lại khi RAM đã đầy hoàn toàn. Mặc dù về mặt lý thuyết, các cài đặt này vẫn có thể hoạt động, nhưng việc thử nghiệm trong các hệ thống có thông số kỹ thuật thấp với RAM 2GB trở xuống có thể gây ra tình trạng đóng băng và khiến hệ điều hành hoàn toàn không phản hồi. Nhìn chung, việc tìm ra phương tiện vàng giữa hiệu suất hệ thống tổng thể và độ trễ phản hồi đòi hỏi khá nhiều thử nghiệm (như thường lệ).

Câu hỏi thường gặp​

Không gian hoán đổi trong Linux là gì?

Không gian hoán đổi trong Linux là một phần của ổ cứng được sử dụng khi RAM (Bộ nhớ truy cập ngẫu nhiên) được sử dụng đầy đủ. Khi hệ thống yêu cầu nhiều tài nguyên bộ nhớ hơn và RAM đầy, các trang không hoạt động trong bộ nhớ sẽ được chuyển đến không gian hoán đổi. Quá trình này cung cấp thêm tài nguyên bộ nhớ cho hệ thống với cái giá phải trả là một số hiệu suất, vì truy cập ổ cứng chậm hơn truy cập RAM.

Swappiness trong Linux là gì?

Swappiness là một tham số của hạt nhân Linux kiểm soát mức độ mà hệ thống ưu tiên hoán đổi bộ nhớ thời gian chạy, trái ngược với việc xóa các trang khỏi bộ đệm trang của hệ thống. Swappiness có thể có giá trị từ 0 đến 100; giá trị thấp hơn có nghĩa là ít hoán đổi được ưu tiên, trong khi giá trị cao hơn có nghĩa là nhiều hoán đổi được ưu tiên.

Làm thế nào để tôi có thể kiểm tra giá trị Swappiness hiện tại?

Bạn có thể kiểm tra giá trị swappiness hiện tại bằng cách chạy lệnh cat /proc/sys/vm/swappiness trong thiết bị đầu cuối. Lệnh này sẽ hiển thị giá trị swappiness hiện tại, thường được đặt thành 60 theo mặc định trong nhiều bản phân phối Linux.

Làm thế nào để thay đổi giá trị Swappiness?

Để tạm thời thay đổi giá trị swappiness, hãy sử dụng lệnh sudo sysctl vm.swappiness=, thay thế bằng mức swappiness mong muốn của bạn. Để thay đổi vĩnh viễn, hãy thêm vm.swappiness = vào tệp /etc/sysctl.conf của bạn rồi chạy sudo sysctl -p.

Tăng Swappiness có cải thiện hiệu suất không?

Không nhất thiết. Tăng swappiness có thể dẫn đến việc sử dụng không gian hoán đổi thường xuyên hơn, điều này có thể làm chậm hệ thống vì việc truy cập dữ liệu trên ổ cứng chậm hơn so với trong RAM. Tuy nhiên, nó có thể hữu ích trong các tình huống bộ nhớ liên tục đầy và các chương trình đang bị tắt. Đó là sự cân bằng giữa việc giữ nhiều ứng dụng hơn trong bộ nhớ và chi phí hiệu suất khi sử dụng không gian hoán đổi.

Có nên có không gian hoán đổi lớn hơn RAM không?

Kích thước của không gian hoán đổi phụ thuộc vào khối lượng công việc và cấu hình của hệ thống. Trước đây, quy tắc chung là có không gian hoán đổi gấp đôi kích thước RAM. Tuy nhiên, với các hệ thống hiện đại có lượng RAM lớn, điều này thường không cần thiết. Điều quan trọng hơn là theo dõi và hiểu rõ mức sử dụng bộ nhớ của hệ thống và điều chỉnh cho phù hợp.

Tôi có thể chạy Linux mà không cần không gian hoán đổi không?

Có, có thể chạy Linux mà không cần không gian hoán đổi, đặc biệt là trên các hệ thống có lượng RAM lớn. Tuy nhiên, không có không gian hoán đổi có thể dẫn đến các sự cố khi RAM cạn kiệt, chẳng hạn như các ứng dụng bị tắt hoặc hệ thống không ổn định.

Swap ảnh hưởng đến SSD (Ổ đĩa thể rắn) như thế nào?

Swap có thể là một yếu tố quan trọng đối với các hệ thống sử dụng SSD, vì việc ghi thường xuyên vào không gian hoán đổi có khả năng làm giảm tuổi thọ của SSD do giới hạn độ bền ghi của nó. Tuy nhiên, SSD hiện đại thường bền hơn và tác động thực tế có thể khác nhau tùy thuộc vào chất lượng và khối lượng công việc của SSD.

Tôi có thể thay đổi kích thước không gian hoán đổi trên hệ thống đang chạy không?

Bạncó thể điều chỉnh kích thước của không gian hoán đổi trên hệ thống đang chạy. Bạn có thể tạo tệp hoán đổi mới hoặc thay đổi kích thước tệp hiện có, sau đó kích hoạt hoặc hủy kích hoạt tệp đó bằng lệnh swaponswapoff. Luôn đảm bảo rằng việc thay đổi kích thước swap không ảnh hưởng đến tính ổn định của hệ thống.

Làm thế nào để theo dõi mức sử dụng swap trên hệ thống của tôi?

Để theo dõi mức sử dụng swap, bạn có thể sử dụng các lệnh như free -m để xem bộ nhớ và mức sử dụng swap, vmstat để biết số liệu thống kê chi tiết về bộ nhớ ảo và top hoặc htop để theo dõi mức sử dụng bộ nhớ và swap theo thời gian thực cùng với các số liệu thống kê khác.
 
Back
Bên trên