Computer >> Máy Tính >  >> Hệ thống >> Linux

Những điều bạn cần biết về phân vùng hoán đổi trên Linux

Những điều bạn cần biết về phân vùng hoán đổi trên Linux

Khi bạn cài đặt Linux, quá trình thiết lập có thể sẽ thêm một phân vùng hoán đổi vào đĩa cứng cùng với các phân vùng cho chính Linux. Nhưng phân vùng hoán đổi này dùng để làm gì và nó có thực sự cần thiết không?

Hoán đổi là gì?

Khi hệ điều hành đa nhiệm hết bộ nhớ vật lý, hệ điều hành này không thể khởi động các quy trình mới hoặc phân bổ thêm bộ nhớ cho các quy trình hiện có. Để giải quyết vấn đề này, một khối không gian đặc biệt trên bộ nhớ cục bộ (thường là ổ cứng) được dành để hoạt động như một khu vực lưu giữ tạm thời cho các quy trình hiện không chạy. Hệ điều hành “hoán đổi” tiến trình không hoạt động ra khỏi bộ nhớ và vào đĩa cứng. Điều này giải phóng bộ nhớ cho công việc mới. Khi tiến trình không hoạt động trở lại hoạt động, nó sẽ được hoán đổi trở lại từ bộ nhớ cục bộ sang bộ nhớ. Thủ tục này được gọi là hoán đổi.

Không gian hoán đổi có thực sự cần thiết không?

Không gian hoán đổi có cần thiết về mặt kỹ thuật không? Không. Linux có thể hoạt động mà không có nó và trong một số tình huống, giống như các giải pháp nhúng, Linux có thể chạy mà không cần hoán đổi. Nếu hệ điều hành gặp phải tình huống không có đủ bộ nhớ, hệ điều hành sẽ hoảng loạn và dừng lại. Nếu có đủ RAM vật lý, máy sẽ chạy mà không gặp bất kỳ sự cố nào.

Không gian hoán đổi có thực sự cần thiết không? Đúng. Mặc dù hoán đổi làm chậm máy tính (vì đọc và ghi vào đĩa cứng chậm hơn nhiều so với truy cập RAM) và việc có nhiều bộ nhớ vật lý trên bo mạch là giải pháp tốt nhất để tránh hoán đổi, nhưng vẫn có những tình huống hợp pháp mà việc hoán đổi là mong muốn. Ví dụ, trong quá trình khởi động hệ thống, có thể có các tiến trình đang chạy (và do đó tiêu tốn bộ nhớ hệ thống) nhưng sau đó ngủ hiệu quả trong một khoảng thời gian rất dài. Hoặc bộ nhớ được cấp phát, ghi vào và sau đó không bao giờ được sử dụng nữa. Trong những tình huống này, thuật toán hoán đổi sẽ bắt đầu di chuyển bộ nhớ này sang đĩa cứng và do đó giải phóng bộ nhớ hệ thống có giá trị. Điều này thực sự đảm bảo rằng luôn có sẵn bộ nhớ RAM tối đa và do đó làm tăng hiệu suất.

Những điều bạn cần biết về phân vùng hoán đổi trên Linux

Trên các máy không có đủ RAM vật lý để mọi thứ nằm trong bộ nhớ thì việc sử dụng không gian hoán đổi là điều cần thiết!

Để hoàn thiện, điều đáng nói là Linux cũng có một hệ thống con được gọi là Out-Of-Memory Killer (OOM), hệ thống này thay vì dừng kernel khi nó hết bộ nhớ, nó sẽ bắt đầu tiêu diệt các tiến trình để giải phóng tài nguyên. Các hành động của nó có thể định cấu hình.

Tôi nên phân bổ bao nhiêu không gian hoán đổi?

Không có quy tắc tuyệt đối và vì không gian đĩa cứng rẻ (đô la cho mỗi Gigabyte), tốt hơn là nên phân bổ quá nhiều không gian quá ít. Theo nguyên tắc chung, bạn nên có gấp hai hoặc ba lần dung lượng hoán đổi làm bộ nhớ vật lý.

Thêm hoán đổi mà không cần mở rộng phân vùng hoán đổi

Có hai cách để thêm không gian hoán đổi vào hệ thống mà không làm thay đổi phân vùng hoán đổi hiện có. Một cách là sử dụng phân vùng hoán đổi trên ổ đĩa khác, cách khác là sử dụng tệp hoán đổi.

Để sử dụng một ổ cứng khác, hãy tạo một phân vùng kiểu “Linux swap” (mã 82) rồi chạy “mkswap ”Lệnh để chuẩn bị không gian hoán đổi:

mkswap /dev/sdb2

Trong đó /dev/sdb2 là tên của phân vùng bạn đã tạo. Để sử dụng không gian hoán đổi ngay lập tức, hãy sử dụng “swapon ”Lệnh:

swapon /dev/sdb2

Sử dụng “swapon -s ”Để nhận danh sách các không gian hoán đổi hiện đang được sử dụng. Để thêm vĩnh viễn không gian hoán đổi vào hệ thống, bạn sẽ cần chỉnh sửa /etc/fstab tệp và thêm một dòng tương tự như sau:

/dev/sdb2       none    swap    sw      0       0

Nếu hệ thống của bạn đang sử dụng số nhận dạng duy nhất để đặt tên cho đĩa, hãy sử dụng blkid lệnh để lấy danh sách id cho các thiết bị. Dòng để gắn kết không gian hoán đổi trong /etc/fstab sau đó sẽ trông giống như sau:

UUID=036da155-1ea1-4392-b8d4-700f65aa1ead  none  swap  sw  0  0

Để sử dụng tệp để hoán đổi, hãy tạo một tệp trống lớn (sử dụng dd ) trên hệ thống tệp mà bạn muốn sử dụng để hoán đổi. Ví dụ:để tạo tệp 1GB, hãy nhập:

dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576

Nơi /store/swapfile là đường dẫn đến tệp hoán đổi trên hệ thống tệp mong muốn.

Cũng như phân vùng hoán đổi bổ sung, tệp bây giờ cần được chuẩn bị bằng mkswap và sau đó được sử dụng với swapon . Nó cũng cần được thêm vào /etc/fstab tập tin. Quy trình hoàn toàn tương tự như trên, nhưng bạn cần sử dụng /store/swapfile chứ không phải là /dev/sdb2 làm tham số không gian hoán đổi.

Sự thích thú

Nhân Linux có thể được tinh chỉnh để xác định mức độ mạnh mẽ mà nó nên cố gắng hoán đổi các tiến trình ra khỏi bộ nhớ. Xu hướng này được kiểm soát bởi một biến hạt nhân có tên là swappiness . Một swappiness 0 có nghĩa là hạt nhân sẽ tránh hoán đổi nhiều nhất có thể, trong khi 100 nghĩa là hạt nhân sẽ tích cực trong cách nó sử dụng không gian hoán đổi. Cài đặt mặc định cho nhiều bản phân phối Linux là 60. Có thể thay đổi số động bằng lệnh này:

sudo sysctl vm.swappiness=10

Để đặt vĩnh viễn một giá trị, bạn cần thay đổi (hoặc thêm, nếu nó không tồn tại) vm.swappiness trong /etc/sysctl.conf tệp.

Hãy cho chúng tôi biết nếu bạn có thắc mắc về hoán đổi trong Linux.

Bài báo này được xuất bản lần đầu tiên vào tháng 12 năm 2013 và được cập nhật vào tháng 8 năm 2020.