Cách thay đổi kích thước Swap trong Ubuntu

Tóm tắt nội dung

Trong hướng dẫn này, chúng tôi sẽ trình bày cách thay đổi kích thước của Swap trong Ubuntu 22.04.

Swap File trong Linux

RAM của máy tính được chia thành các chunk bởi kernel Linux được gọi là “trang”. Khi bất kỳ trang nào được sao chép vào một không gian được cấu hình trước trên các thiết bị lưu trữ phụ (ổ đĩa cứng hoặc SSD trong hầu hết các trường hợp), nó được gọi là “swapping”. Không gian dành riêng được cấu hình trước được gọi là “swap space”.

Tổng số lượng bộ nhớ vật lý (RAM) và swap space được gọi là “bộ nhớ ảo”.

Có cần thiết phải sử dụng Swapping không?

Có một vài lý do tại sao cần sử dụng swapping:

Khi có yêu cầu về bộ nhớ hơn so với những gì có sẵn vật lý, việc swapping các trang không quan trọng hơn sẽ giải phóng nhiều bộ nhớ hơn cho quá trình đòi hỏi nhiều bộ nhớ hơn. Một phần lớn các trang được sử dụng trong quá trình khởi động chương trình có thể không được sử dụng nhiều. Việc swapping những trang đó có thể giải phóng nhiều bộ nhớ hơn cho các ứng dụng khác. Nếu không có swap space được chỉ định, nếu bộ nhớ RAM đầy đủ, nó có thể gây ra sự cố hệ thống, đặc biệt là các hệ thống có dung lượng RAM thấp. Tuy nhiên, swapping cũng đi kèm với một số hạn chế:

So với RAM, thiết bị lưu trữ phụ (ổ đĩa cứng, SSD và các thiết bị tương tự) rất chậm. Để đưa ra cái nhìn tổng thể, tốc độ truy cập RAM được đo bằng nanosecond trong khi tốc độ truy cập đĩa được đo bằng millisecond. Do sự khác biệt về tốc độ đọc / ghi, swapping là một quá trình rất chậm. Khi có nhiều swapping xảy ra, nó cuối cùng sẽ làm chậm hệ thống. Các loại Swap Space Bạn sẽ gặp hai loại swap space trong Linux:

Một phân vùng swap được cấp riêng – Không có tệp nào khác có thể được lưu trữ ở đó. Tệp Swap – Những tệp này có thể ở bất kỳ đâu trong hệ thống tệp. Tùy thuộc vào dung lượng RAM có sẵn, kích thước swap space có thể thay đổi. Dưới đây là một vài ví dụ:

Tệp Swap trong Ubuntu 

Ubuntu thường sử dụng một phân vùng swap được cấp riêng để swapping. Thường thì, phân vùng này được tạo ra trong quá trình cài đặt. Tuy nhiên, chúng ta có thể tạo và điều chỉnh các tệp swap theo ý muốn.

Danh sách Swap Spaces 

Lệnh sau đây sẽ hiển thị tất cả các swap spaces đang được cấu hình:

$ swapon

Danh sách này chứa tất cả các swap spaces, bao gồm các phân vùng swap và các tệp swap.

Tạo Swap Files 

Một lợi thế quan trọng của swap files so với phân vùng swap là kích thước tệp có thể dễ dàng được thay đổi, do đó thay đổi số lượng swap space mà không cần phải chạm vào các phân vùng đĩa. Ở phần này, chúng ta sẽ tạo một tệp swap mới và thêm nó vào pool swap hiện có.

Trước tiên, hãy tạo một tệp trống bằng lệnh sau:

$ sudo dd if=/dev/zero of=/new_swap bs=1M count=2048

Ở đây:

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Kích thước tệp được tính toán là 1M x 2048 = 2G. Để tạo một tệp với kích thước khác, hãy thay đổi giá trị đối số của count tương ứng. /dev/zero là một thiết bị khối đặc biệt trong hệ thống Linux, đưa ra các byte không mỗi khi được đọc. Mặc dù chúng ta có thể sử dụng các công cụ khác như fallocate để tạo tệp, nhưng trong một số tình huống, điều đó có thể dẫn đến các vấn đề. Nó được thảo luận chi tiết hơn trong bài đăng AskUbuntu này.

Tiếp theo, chúng ta cần thiết lập các quyền tệp đúng bằng lệnh sau:

$ sudo chmod 600 /new_swap

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Bây giờ, chúng ta cần định dạng tệp làm swap bằng lệnh sau:

$ sudo mkswap /new_swap

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Cuối cùng, chúng ta có thể thêm tệp vào pool swap.

$ sudo swapon /new_swap

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Nếu hành động thành công, tệp swap mới sẽ xuất hiện trên danh sách swap spaces.

$ swapon

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Lưu ý rằng hành động này chỉ là tạm thời. Sau khi khởi động lại, tệp swap sẽ không còn được sử dụng. Để thực hiện thay đổi này vĩnh viễn, chúng ta phải cập nhật bảng /etc/fstab với mục sau:

/new_swap swap swap defaults 0 0

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Kiểm tra Free Swap Space 

Lệnh sau đây sẽ in ra thông tin sử dụng bộ nhớ và swap space:

$ sudo free -h

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Xóa tệp Swap 

Để xóa tệp Swap, trước tiên chúng ta phải đảm bảo rằng nó không được sử dụng. Lệnh sau đây sẽ tắt một tệp Swap:

$ sudo swapoff -v /<swap_file>

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Kiểm tra danh sách các không gian Swap hoạt động để xác nhận thay đổi.

$ swapon

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Nếu tệp Swap được khai báo trong /etc/fstab, bạn cũng phải xóa mục đó. Bây giờ, tệp Swap đã được xóa an toàn. Xóa nó bằng lệnh sau đây:

$ sudo rm /<swap_file>

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Thay đổi Kích thước Swap 

Tùy thuộc vào loại không gian Swap (phân vùng hoặc tệp), quá trình thay đổi kích thước Swap có thể khác nhau.

Thay đổi Kích thước 

Phân vùng Swap Một phân vùng chỉ có thể được mở rộng nếu có không gian chưa được phân bổ ngay sau đó. Nếu không, tùy chọn thay đổi kích thước duy nhất khác là thu nhỏ phân vùng. Điều này cũng áp dụng cho phân vùng Swap.

Nếu bạn đang sử dụng môi trường GNOME, ứng dụng “Disks” có thể cung cấp thông tin về tình trạng hiện tại.

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Ngoài ra, chúng ta có thể sử dụng GParted để trực quan hóa.

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Như bạn có thể thấy, phân vùng Swap nằm ngay bên cạnh phân vùng gốc trong hệ thống này. Điều này không để lại không gian để mở rộng phân vùng Swap.

Tuy nhiên, chúng ta có thể thực hiện các hoạt động thu nhỏ và định dạng lại. Tìm hiểu thêm về quản lý phân vùng bằng fdisk hoặc GParted. Lệnh resize2fs cũng cần thiết để thay đổi kích thước hệ thống tệp hiện có theo phân vùng đã được thay đổi kích thước.

Thay đổi Kích thước Tệp Swap 

Để thao tác với tệp Swap, trước tiên chúng ta cần loại bỏ nó khỏi nhóm Swap. Chạy lệnh sau đây:

$ sudo swapoff /new_swap

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Bây giờ, chạy lại lệnh dd để tăng kích thước tệp:

$ sudo dd if=/dev/zero of=/new_swap bs=1G count=2 oflag=append conv=notrunc

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Ở đây, chúng ta đã thêm 2GB không gian mới vào tệp swap. Tiếp theo, chúng ta sẽ định dạng lại tệp thành swap bằng lệnh sau:

$ sudo mkswap /new_swap

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Cuối cùng, chúng ta có thể kích hoạt swapping cho nó:

$ sudo swapon /new_swap

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

$ swapon

 

Cách thay đổi kích thước hoán đổi trong Ubuntu_1

Lưu ý rằng trong một số trường hợp, cố gắng tắt tệp swap có thể dẫn đến lỗi như “swapoff failed: Cannot allocate memory”. Trong trường hợp đó, chúng ta thực hiện các bước sau:

Tạo một tệp swap mới với dung lượng lớn hơn. Kết nối tệp swap lớn hơn vào hệ thống. Xóa tệp swap cũ, nhỏ hơn. Xóa mục tệp swap cũ khỏi /etc/fstab (nếu cần).

Kết Luận

Chúng ta đã thảo luận chi tiết về việc quản lý swap spaces trên Ubuntu. Chúng ta đã thảo luận về các loại swap spaces khác nhau. Chúng ta đã học cách thay đổi kích thước các phân vùng swap và cách làm việc với các tệp swap (tạo, xóa và thay đổi kích thước) trong ubuntu 22.04

.

Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812