Trước khi bắt đầu
Swap không phải là sự thay thế cho bộ nhớ vật lý, nó là một phần của ổ đĩa, chính vì thế nó có thời gian truy cập chậm hơn bộ nhớ vật lý. Nếu hệ thống của bạn liên tục hết bộ nhớ, bạn nên bổ sung thêm RAM.
Các thao tác của mình được thực hiện trên Ubuntu 20.04
Tạo một Swap File
Tại sao chúng ta cần swap?
Có một tình huống hết sức cảm động như thế này. Bạn đang chạy một hệ thống săn voucher, trong các ngày bình thường thì lượng user truy cập không nhiều vì có voucher đâu mà săn 😛
Bỗng dưng tới ngày 12.12, hay các ngày số đẹp mà tiki hay lazada hay dụ các bạn vào hệ thống để săn sale ấy, thì lượng truy cập tăng đột biến và đây là cấu hình server của bạn,
- ổ cứng: 40GB
- RAM: 2GB
khiến cho RAM server của bạn ngỏm củ tỏi dẫn tới việc sập hệ thống. Tới đây các bạn đã thấy cảm động chưa 😅
Nguyên nhân sập hệ thống thì đã rõ, là do hết dung lượng RAM, vậy làm sao để giải quyết vấn đề này?
- Mua thêm 2GB RAM → 4GB
- Tận dụng swap space → we are here, chúng ta sẽ mượn của ổ đĩa 2GB để tạo swap space, server sẽ sử dụng dung lượng mình đã swap này khi RAM đạt tới ngưỡng nhất định gọi là swappiness, mình sẽ nói ở phần dưới nhé.
Lưu ý đây là cách giải quyết tạm thời đề phòng server sập thôi nhé, đối với mình thì cách đầu tiên là ngon nhất, vì nó tận dụng tối đa sức mạnh của RAM
Trong bài này, mình sẽ tạo swap file 2GB. Nếu bạn muốn tạo nhiều hơn thì thay 2G thành con số bạn mong muốn.
- Tạo swap file:
sudo fallocate -l 2G /swapfile
- Set quyền cho file để user không nằm trong sudo không đọc và ghi file:
sudo chmod 600 /swapfile
- Thiết lập swapfile dưới dạng vùng hoán đổi Linux:
sudo mkswap /swapfile
Output
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
- Sau khi tạo thì enable nó lên để sử dụng nhé
sudo swapon /swapfile
Để thực hiện thay đổi vĩnh viễn, hãy mở tệp /etc/fstab
và thêm dòng sau:
/swapfile swap swap defaults 0 0
- Xác nhận swap file đã được enable hay chưa:
sudo swapon --show
Output
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1
sudo free -h
Output
total used free shared buff/cache available
Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi
Swap: 2.0Gi 10Mi 1.9Gi
Điều chỉnh giá trị swap – swappiness
Swappiness cho phép chúng ta thiết lập thông số để Linux sử dụng swap space, trên Ubuntu giá trị này mặc định là 60, bạn kiểm tra bằng lệnh dưới đây:
cat /proc/sys/vm/swappiness
Vậy làm thế nào để sửa?
sudo vim /etc/sysctl.conf
# Sau đó thêm cuối dòng
vm.swappiness=90
# Chạy lệnh dưới đây để reload lại config ở trên nhé
sudo sysctl -p /etc/sysctl.conf
Xoá swap file
sudo swapoff -v /swapfile
sudo rm /swapfile
💌 Lời cảm ơn
Cảm ơn các bạn đã theo dõi hết bài 😍. Trên đây là toàn bộ những gì chưa sẻ về Cách tạo swap file trên Ubuntu hy vọng nó giúp bạn phần nào trong hành trình code của bạn. 💪