Cách tạo tệp hoán đổi trên Linux

Tác giả sysadmin, T.Một 23, 2024, 10:24:40 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách tạo tệp hoán đổi trên Linux


Tăng dung lượng trao đổi Linux mà không cần chạm vào phân vùng đĩa. Chúng tôi chỉ cho bạn một cách dễ dàng. Thêm không gian trao đổi vào máy tính Linux hoặc tăng không gian trao đổi đã có mà không gây rối với các phân vùng. Chúng tôi chỉ cho bạn cách dễ dàng để điều chỉnh không gian trao đổi của bạn.

1. Hoán đổi tập tin và phân vùng trao đổi

Có một số tình huống mà bạn có thể muốn tăng dung lượng trao đổi hiện có hoặc thêm dung lượng trao đổi mới vào máy tính Linux của mình.

  • Có lẽ không gian hoán đổi của bạn thường xuyên chạy ở mức tối đa hoặc gần mức tối đa.
  • Bạn rất dễ bấm nhầm vào tùy chọn trong quá trình cài đặt và vô tình từ chối thêm trao đổi vào hệ thống của mình.
  • Có thể trước đây bạn đã quyết định rằng mình có quá nhiều bộ nhớ truy cập ngẫu nhiên (RAM) đến mức không cần bất kỳ trao đổi nào và bạn đã thay đổi quyết định.
  • Đôi khi bạn kế thừa quyền quản trị một hệ thống không có trao đổi, vì những lý do mà bạn sẽ không bao giờ có thể khám phá được.

Giải pháp đơn giản cho tất cả những vấn đề này là thêm một tập tin hoán đổi vào máy tính của bạn. Đây là một tập tin đặc biệt, được phân bổ trước và dành riêng để sử dụng làm không gian trao đổi. Tệp hoán đổi sẽ hoạt động song song với bất kỳ hoán đổi hiện có nào mà bạn có thể có, cho dù đó là tệp hoán đổi hay phân vùng trao đổi.

Đã có lúc, việc sử dụng tệp hoán đổi so với phân vùng trao đổi đã ảnh hưởng đến hiệu suất. Điều đó không còn xảy ra nữa với những cải tiến về hiệu suất của ổ cứng cơ học (quay) và hiệu quả cao hơn trong các chức năng trao đổi trong hệ điều hành Linux. Trên thực tế, một số bản phân phối Linux hiện mặc định tạo tệp hoán đổi thay vì phân vùng trao đổi.

Hoán đổi không chỉ được sử dụng như một phương tiện để giải phóng RAM khi bộ nhớ sắp hết. Đó là một phần quan trọng của một hệ thống hoạt động tốt. Nếu không có bất kỳ trao đổi nào, việc quản lý bộ nhớ lành mạnh sẽ trở nên rất khó khăn đối với kernel. Hãy xem cách dễ dàng để thêm một số không gian hoán đổi.

2. Trước khi chúng ta đi sâu vào: Btrf và SSD

Có hai điểm chúng tôi muốn thảo luận nhanh chóng.

Hệ thống tệp Btrfs có một số cảnh báo nhất định về các tệp hoán đổi. Đã có lúc xảy ra xung đột giữa bản chất sao chép khi ghi của Btrfs, vốn muốn hoạt động theo một cách và trao đổi các tệp cần hoạt động theo cách khác. Một số chức năng mà các tệp hoán đổi phụ thuộc vào đã không được triển khai và một số giả định được đưa ra về việc đánh số khối trong các tệp hoán đổi không đúng với Btrfs. Vì vậy, các tập tin trao đổi không được hỗ trợ.

Kể từ kernel 5.0, bạn có thể có các tệp hoán đổi trong hệ thống tệp Btrfs nếu chúng được thiết lập với các yêu cầu sau:

  • Không có tệp sao chép khi ghi (NOCOW).
  • Chúng không bị nén.
  • Họ không đặt các ổ cứng khác nhau.

Hầu hết người đọc sẽ sử dụng hệ thống tệp ext4 mặc định, vì vậy đây không phải là vấn đề đáng lo ngại đối với họ.

Khi Ổ đĩa thể rắn (SSD) lần đầu tiên xuất hiện, người ta lo ngại về việc sử dụng chúng trong các tình huống thường xuyên ghi vào hệ thống tệp. Mọi người đã được cảnh báo không nên đặt dung lượng trao đổi trên SSD và thậm chí tránh ghi nhật ký hệ thống vào SSD.

Ngày nay, điều này ít được quan tâm hơn nhiều và nhiều ổ SSD đang được bán có tuổi thọ cao hơn hầu hết các PC. Tệp hoán đổi trên ổ SSD sẽ có hiệu suất tốt hơn nhiều so với phân vùng trao đổi trên ổ cứng cơ học.

3. Kiểm tra không gian hoán đổi hiện có

Xem xét trước khi bạn bước nhảy vọt. Hãy kiểm tra dung lượng trao đổi có sẵn trên máy tính của bạn. Bạn có thể thực hiện việc này theo hai cách và chúng tôi sẽ sử dụng cả hai. Lệnh freesẽ hiển thị bộ nhớ đã sử dụng và còn trống. Tùy chọn -h (con người có thể đọc được) sẽ freesử dụng các đơn vị hợp lý khi hiển thị các giá trị bộ nhớ.

Mã nguồn [Chọn]
free -h

Kết quả đầu ra free cho thấy không có không gian trao đổi nào được định cấu hình trên máy này.

Việc hoán đổi không bao giờ được thảo luận nếu không có RAM và RAM trống. Vì vậy, điều đáng chú ý là RAM miễn phí được cung cấp là 237 MB. Đừng nhầm lẫn điều đó với tổng RAM có sẵn để sử dụng. Giá trị đó được cung cấp bởi con số "có sẵn", là 881 MB.

Linux sử dụng RAM trống cho các mục đích riêng của nó, chẳng hạn như bộ nhớ đệm tệp và bộ đệm kernel. Dung lượng RAM dành riêng cho việc đó là con số "buff/cache" là 871 MB. Nhưng ký ức đó vẫn được coi là—và được tính là—"có sẵn". Nội dung của RAM "buf/cache" có thể bị loại bỏ ngay lập tức và được sử dụng bởi bất kỳ ứng dụng nào cần bộ nhớ.

Một cách khác để kiểm tra xem có dung lượng trao đổi hay không là sử dụng swaponlệnh. Tùy chọn này --show không thực hiện bất kỳ thay đổi nào đối với trao đổi trên máy tính của bạn. Nó chỉ cung cấp số liệu thống kê.

Mã nguồn [Chọn]
swapon --show

Nếu không có đầu ra từ lệnh này thì không có cấu hình trao đổi nào.

Nếu các lệnh này cho thấy một số không gian hoán đổi đã được định cấu hình thì kích thước của không gian hoán đổi hiện tại sẽ được đưa vào các quyết định liên quan đến kích thước của tệp hoán đổi mà bạn sắp tạo.

4. Tôi cần bao nhiêu không gian hoán đổi?

Câu trả lời truyền thống là "gấp đôi dung lượng RAM bạn có". Nhưng điều này được đặt ra khi máy tính từng có RAM rất hạn chế. Khi RAM trở nên rẻ hơn và các chương trình cũng như trò chơi đòi hỏi nhiều bộ nhớ hơn, các thông số kỹ thuật của PC cũng đã được điều chỉnh tương ứng. Máy tính gia đình có RAM 32 GB ngày nay không phải là hiếm. Và bạn sẽ không phân bổ 64 GB dung lượng ổ cứng để trao đổi dung lượng nếu bạn có RAM 32 GB. Điều đó rõ ràng là quá mức.

Số lượng trao đổi bạn cần là một chủ đề gây kích động, có thể so sánh với "trình soạn thảo nào tốt nhất". Một trong những cuộc thảo luận hợp lý nhất mà chúng tôi từng thấy về chủ đề này là trong Câu hỏi thường gặp về trao đổi Ubuntu. Đó là một cách tiếp cận ngắn gọn và hợp lý (mặc dù, giống như nhiều người, họ hiểu sai cách hoạt động của tính dễ thay đổi trên Linux ). Có một bảng tiện dụng hiển thị dung lượng trao đổi được đề xuất cho dung lượng RAM mà hệ thống của bạn có và liệu bạn có cho máy tính ngủ đông hay không.

Và tin tốt là, việc bạn chọn giá trị nào thực sự không quan trọng. Chúng tôi luôn có thể xóa tệp hoán đổi và thay thế nó bằng tệp lớn hơn hoặc nhỏ hơn. Hoặc bạn chỉ có thể thêm một tập tin trao đổi khác.

Chọn kích thước tệp hoán đổi từ bảng và chạy nó một lúc. Giám sát việc sử dụng không gian trao đổi của hệ thống của bạn. Nếu cần tinh chỉnh, những thay đổi có thể dễ dàng được thực hiện. Với các tập tin trao đổi, đó là một công việc kéo dài hai phút. Hãy so sánh điều đó với việc điều chỉnh phân vùng trên máy tính Linux trực tiếp.

5. Tạo tập tin hoán đổi

Bạn không nên sử dụng fallocate lệnh để tạo tệp hoán đổi của mình. Đây là từ trang man cho swapon:

Mã nguồn [Chọn]
The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system.
This is a problem on files with holes or on copy-on-write files on file
systems like Btrfs. Commands like cp(1) or truncate(1) create files with
holes. These files will be rejected by swapon.
Preallocated files created by fallocate(1) may be interpreted as files
with holes too depending of the filesystem. Preallocated swap files are
supported on XFS since Linux 4.18.
The most portable solution to create a swap file is to use dd(1) and /dev/zero.

Vì vậy, mặc dù fallocate nhanh hơn nhưng chúng tôi sẽ sử dụng dd để tạo tệp hoán đổi. Máy được sử dụng để nghiên cứu bài viết này có RAM 2 GB. Chúng tôi sẽ tạo một tệp hoán đổi một GB.

Các tùy chọn là:

  • if : Tệp đầu vào. Trong ví dụ này, chúng tôi đang sử dụng /dev/zero nó sẽ cung cấp luồng 0 byte.
  • of : Tệp đầu ra. Chúng ta sẽ tạo một tệp trong thư mục gốc, được gọi là swapfile.
  • bs : Kích thước khối tính bằng byte. Điều này chỉ định số lượng byte cần đọc từ tệp đầu vào và ghi vào tệp đầu ra cùng một lúc.
  • count : Có bao nhiêu khối để đọc và viết. Nhân số này với bsgiá trị để có kích thước tệp.

Mã nguồn [Chọn]
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Một số thống kê được cung cấp khi tệp được tạo.


Chúng ta có thể thấy số khối (bản ghi) được ghi vào tệp, kích thước của tệp, thời gian tạo tệp và tốc độ truyền dữ liệu hiệu quả.

Sử dụng ls lệnh để xem tập tin trong thư mục gốc:

Mã nguồn [Chọn]
ls /

6. Chuẩn bị tệp hoán đổi

Chúng ta cần chuẩn bị tệp hoán đổi bằng mkswaplệnh trước khi sử dụng. Chúng tôi không cần cung cấp bất kỳ tham số nào mkswapngoài đường dẫn và tên của tệp:

Mã nguồn [Chọn]
sudo mkswap /swapfile

Tệp được chuẩn bị để sử dụng làm tệp hoán đổi. Lưu ý cảnh báo về quyền truy cập tệp. Chúng ta cần thay đổi những thứ đó để người dùng root là người duy nhất có thể đọc và ghi vào tệp hoán đổi.

7. Sử dụng tệp hoán đổi

Các quyền mặc định quá rộng rãi, chúng ta cần hạn chế chúng để chỉ root mới có thể sử dụng tệp hoán đổi. Sử dụng chmodđể thay đổi quyền của tập tin :

Mã nguồn [Chọn]
sudo chmod 600 /swapfile

Điều này sẽ loại bỏ tất cả các quyền từ các thành viên nhóm tệp và những người khác, nhưng cho phép chủ sở hữu tệp, root, đọc và ghi vào tệp.

Chúng ta cần sử dụng swaponlệnh để cho Linux biết có một tệp hoán đổi mới có sẵn để sử dụng. Chúng tôi chỉ cần cung cấp đường dẫn và tên tệp:

Mã nguồn [Chọn]
sudo swapon /swapfile

Tệp hoán đổi hiện đang hoạt động.

8. Thêm tệp hoán đổi vào fstab

Để đảm bảo tệp hoán đổi của bạn có sẵn sau khi khởi động lại, hãy thêm nó vào /etc/fstabtệp. Bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào bạn thích nhưng chúng tôi sẽ hiển thị quy trình bằng trình soạn thảo văn bản Gedit đồ họa.

Mã nguồn [Chọn]
sudo gedit /etc/fstab

Dòng chúng ta cần thêm vào cuối file là:

Mã nguồn [Chọn]
/swapfile none swap sw 0 0

Các trường là:

  • File system: Đường dẫn và tên của tệp hoán đổi.
  • Mount point: Tệp không được gắn kết giống như một hệ thống tệp, vì vậy mục nhập là "không có".
  • Type: Đây là "trao đổi."
  • Options: Khi khởi động swapon -a(khởi động tất cả các thiết bị được đánh dấu là trao đổi) sẽ được gọi từ một trong các tập lệnh khởi động. Tùy chọn này yêu cầu Linux coi mục nhập này là tài nguyên trao đổi sẽ nằm dưới sự kiểm soát của swapon -alệnh đó. Người ta thường thấy "mặc định" được sử dụng ở đây vì một số người dùng Linux có niềm tin sai lầm rằng trường này bị bỏ qua. Như chúng ta sẽ thấy, đó không phải là trường hợp. Vì vậy, nó có ý nghĩa để sử dụng tùy chọn chính xác.
  • Dump: Điều này có thể được đặt thành 0. Nó không liên quan trong trường hợp này.
  • Pass: Điều này có thể được đặt thành 0. Nó không liên quan trong trường hợp này.

Lưu các thay đổi và đóng trình chỉnh sửa.

9. Kiểm tra việc sử dụng Swap

Để xem không gian trao đổi của bạn có đang được sử dụng hay không, hãy sử dụng swapon lệnh với --show tùy chọn:

Mã nguồn [Chọn]
swapon --show

Các cột là:

  • Tên : Tên của phân vùng trao đổi hoặc tập tin trao đổi.
  • Type : Loại thiết bị trao đổi.
  • Kích thước : Kích thước của tài nguyên trao đổi.
  • Đã sử dụng : Lượng không gian trao đổi đã sử dụng.
  • Prior : Mức độ ưu tiên của không gian hoán đổi này.

10. Ưu tiên không gian hoán đổi

Mỗi không gian hoán đổi được phân bổ một mức độ ưu tiên. Nếu bạn không cung cấp một cái, một cái sẽ tự động được phân bổ. Các ưu tiên được phân bổ tự động luôn âm. Phạm vi ưu tiên có thể được phân bổ thủ công là từ 0 đến 32767. Trao đổi tài nguyên có mức độ ưu tiên cao hơn sẽ được sử dụng trước tiên.

Nếu có nhiều không gian hoán đổi có cùng mức độ ưu tiên, chúng sẽ được sử dụng luân phiên cho đến khi cả hai đều đầy, thì hệ thống sẽ tìm kiếm không gian hoán đổi có mức ưu tiên thấp nhất tiếp theo. Nếu bạn chỉ có một không gian trao đổi duy nhất thì tất nhiên mức độ ưu tiên là không liên quan. Nhưng chúng tôi sẽ thay đổi mức độ ưu tiên của tệp hoán đổi mà chúng tôi đã tạo để minh họa cách thực hiện.

Để đặt mức độ ưu tiên, hãy thêm pri= tùy chọn (ưu tiên) vào /etc/fstab mục nhập. Chỉnh sửa dòng bạn đã thêm vào /etc/fstab để trông như thế này:

Mã nguồn [Chọn]
/swapfile none swap sw,pri=10 0 0
Tức là thêm pri=10 vào trường tùy chọn, phân tách khỏi "sw" bằng dấu phẩy. Không để lại bất kỳ khoảng trắng nào giữa "sw", dấu phẩy và "pri=10." Khởi động lại máy tính của bạn và sử dụng swapon --show lệnh:

Mã nguồn [Chọn]
swapon -- show

Mức độ ưu tiên của không gian hoán đổi này đã được nâng lên 10. Đây là bằng chứng tích cực cho thấy trường tùy chọn trong mục /etc/fstab nhập không bị bỏ qua.

11. Hoán đổi không gian dễ dàng

Bỏ qua phần trình bày và giải thích, chúng ta có thể tạo một tệp hoán đổi mới một cách dễ dàng và nhanh chóng như thế này:

Mã nguồn [Chọn]
sudo dd if=/dev/zero of=/swapfile2 bs=1024 count=104857
Mã nguồn [Chọn]
sudo mkswap /swapfile2
Mã nguồn [Chọn]
sudo chmod 600 /swapfile2
Mã nguồn [Chọn]
sudo swapon /swapfile2
Và hãy kiểm tra xem nó có hoạt động không:

Mã nguồn [Chọn]
swapon --show

Nếu bạn muốn thực hiện việc thả vĩnh viễn, nó sẽ được lưu vào /etc/fstab tệp của bạn.

Bùm. Công việc hoàn thành.