Trong bài viết này, chúng ta sẽ tìm hiểu cách xóa bộ nhớ đệm, bộ đệm và dung lượng hoán đổi bộ nhớ RAM trên Linux để tăng cường hiệu suất tổng thể. Như bất kỳ hệ điều hành khác, GNU/Linux đã triển khai quản lý bộ nhớ một cách hiệu quả và thậm chí còn hơn thế nữa. Tuy nhiên, nếu một quy trình nào đó đang tiêu thụ bộ nhớ của bạn và bạn muốn xóa nó, Linux cung cấp một cách để xóa hoặc xóa bộ nhớ cache RAM.
Hiểu về bộ nhớ đệm, bộ đệm và không gian hoán đổi bộ nhớ RAM
Hãy tìm hiểu về bộ nhớ cache RAM, buffer và không gian swap trên hệ thống Linux.
Bộ nhớ đệm RAM
Bộ nhớ cache RAM là một cơ chế được hạt nhân sử dụng để lưu giữ dữ liệu thường xuyên truy cập. Trong khi điều này tăng sự đáp ứng của hệ thống, việc quá tải cache có thể dẫn đến việc giữ lại dữ liệu lỗi thời, ảnh hưởng đến hiệu suất.
Đệm
Tương tự như cache, buffer giữ dữ liệu tạm thời nhưng khác nhau về mục đích. Buffer lưu trữ dữ liệu đang được chuyển đổi giữa các thành phần như CPU và đĩa cứng, tạo điều kiện cho việc giao tiếp trơn tru. Tuy nhiên, việc có quá nhiều dữ liệu đệm có thể làm chậm tốc độ hệ thống.
Hoán đổi không gian
Không gian swap là một khu vực được cấp phát trên đĩa cứng, hoạt động như bộ nhớ ảo khi bộ nhớ RAM vật lý đã cạn kiệt. Mặc dù nó ngăn ngừa sự cố hệ thống do bộ nhớ thấp, nhưng nếu sử dụng quá nhiều, nó có thể làm chậm hệ thống.
Xóa bộ nhớ đệm, bộ đệm và không gian trao đổi trong Linux
Trong một số trường hợp, bạn có thể cần xóa cache, buffer hoặc không gian swap như được giải thích dưới đây.
Làm cách nào để xóa bộ nhớ đệm RAM trong Linux?
Mọi hệ thống Linux đều có ba tùy chọn để xóa cache mà không làm gián đoạn bất kỳ quy trình hoặc dịch vụ nào.
Xóa bộ đệm trang
1. Để chỉ xóa PageCache, bạn có thể sử dụng lệnh sau đây, nó sẽ xóa đặc biệt PageCache, giúp giải phóng nguồn tài nguyên bộ nhớ.
sudo sync; echo 1 > /proc/sys/vm/drop_caches
Xóa Dentries và Inodes
2. Để chỉ xóa dentries và inodes, bạn có thể sử dụng lệnh sau đây, nó sẽ đồng bộ hóa hệ thống tệp và xóa cả dentries và inodes, cải thiện hiệu suất hệ thống bằng cách giải phóng thông tin thư mục và inode đã lưu cache.
sudo sync; echo 2 > /proc/sys/vm/drop_caches
Xóa PageCache, Dentries và Inodes
3. Để xóa cả pagecache, dentries và inodes, bạn có thể sử dụng lệnh sau đây, nó sẽ đồng bộ hóa hệ thống tệp và xóa pagecache, dentries và inodes, giúp giải phóng bộ nhớ và cải thiện hiệu suất hệ thống.
sudo sync; echo 3 > /proc/sys/vm/drop_caches
Dưới đây là giải thích về mỗi phần của lệnh trên:
- sudo được sử dụng để thực thi lệnh như một superuser.
- sync sẽ xóa bộ đệm hệ thống tệp.
- Dấu chấm phẩy được sử dụng để tách nhiều lệnh trên một dòng duy nhất.
- Lệnh echo 3 > /proc/sys/vm/drop_caches được sử dụng để xóa bộ nhớ cache trang, một khu vực lưu trữ tạm thời cho các tệp tin được truy cập gần đây.
Lưu ý: tập tin drop_caches điều khiển loại dữ liệu đã cache nào sẽ được xóa và các giá trị là như sau:
- 1 - Xóa chỉ bộ nhớ cache trang.
- 2 - Xóa dentries và inodes.
- 3 - Xóa bộ nhớ cache trang, dentries và inodes.
Như được đề cập trong tài liệu kernel, việc ghi vào drop_caches sẽ xóa cache mà không giết bất kỳ ứng dụng hoặc dịch vụ nào, lệnh echo đang làm nhiệm vụ ghi vào tệp.
Nếu bạn phải xóa bộ nhớ cache đĩa, lệnh đầu tiên là an toàn trong môi trường doanh nghiệp và sản xuất, vì "...echo 1 > ... ." sẽ chỉ xóa PageCache.
Không khuyến nghị sử dụng tùy chọn thứ ba ở trên "...echo 3 > ..." trong môi trường sản xuất cho đến khi bạn biết mình đang làm gì, vì nó sẽ xóa pagecache, dentries và inodes.
Làm cách nào để xóa không gian trao đổi trong Linux?
Để xóa không gian swap, bạn có thể sử dụng lệnh swapoff với tùy chọn -a, nó sẽ vô hiệu hóa tất cả các phân vùng swap.
sudo swapoff -a
Sau đó, bật lại bằng cách chạy lệnh sau, nó sẽ kích hoạt tất cả các phân vùng swap.
sudo swapon -a
Có nên sử dụng bộ đệm, bộ đệm và trao đổi miễn phí trong Linux không?
Nói chung, không phải ý tưởng tốt để thủ công giải phóng Buffer và Cache trong Linux mà có thể được sử dụng bởi nhân Linux, được thiết kế để quản lý những tài nguyên này một cách hiệu quả, và việc xóa bộ nhớ cache và buffer thủ công có thể làm gián đoạn hiệu suất hệ thống.
Tuy nhiên, có thể có những tình huống hiếm khi bạn cần xóa Buffer và Cache, ví dụ như khi bạn gặp áp lực bộ nhớ nghiêm trọng và không thể giải phóng bộ nhớ bằng các phương pháp khác. Trong những trường hợp như vậy, bạn nên cẩn thận và tỉnh táo về tác động tiềm năng đến hiệu suất.
Tương tự, việc xóa không gian swap trong Linux thông thường không phải là một thực hành đề xuất hay thông thường dưới các hoàn cảnh bình thường.
Tự động tối ưu hóa bộ nhớ
Để tự động hóa quá trình và định kỳ xóa bộ nhớ, bạn có thể thiết lập một công việc cron để chạy lệnh vào các khoảng thời gian cụ thể.
Mở cấu hình crontab.
crontab -e
Thêm các dòng sau để xóa cache, buffer và không gian swap hàng ngày vào lúc nửa đêm:
0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a
Để biết thêm thông tin về lên lịch công việc với cron, bạn có thể tham khảo bài viết của chúng tôi có tựa đề '11 Lên lịch công việc Cron'.
Có nên xóa bộ nhớ đệm RAM trên máy chủ sản xuất Linux không?
Không, không phải vậy. Hãy xem xét một tình huống khi bạn đã lên lịch một tập lệnh để xóa bộ nhớ cache RAM hàng ngày lúc 2 giờ sáng. Vào mỗi ngày lúc 2 giờ sáng, tập lệnh được thực thi, làm sạch bộ nhớ cache RAM của bạn. Tuy nhiên, một ngày nọ, có một số lượng người dùng đột nhiên rất lớn trực tuyến trên trang web của bạn, tạo ra một nhu cầu đáng kể về tài nguyên máy chủ của bạn.
Cùng một lúc, tập lệnh lên lịch chạy và xóa mọi thứ trong cache. Bây giờ, tất cả người dùng đang truy xuất dữ liệu từ đĩa, có thể dẫn đến sự cố máy chủ và thất thoát cơ sở dữ liệu. Do đó, quan trọng là chỉ xóa bộ nhớ cache RAM khi cần thiết, và cần thận trọng và nhớ về tác động tiềm năng của hành động của mình. Nếu không, bạn rủi ro trở thành một Hệ thống Quản trị Viên Cargo Cult.
Quản lý bộ nhớ hiệu quả là rất quan trọng đối với một hệ thống Linux hoạt động mượt mà. Việc thường xuyên xóa bộ nhớ cache RAM, buffer và không gian swap có thể cải thiện đáng kể hiệu suất hệ thống. Bằng cách hiểu rõ cơ chế này và sử dụng các lệnh cung cấp, bạn có thể giữ cho hệ thống Linux của mình hoạt động tốt nhất.
Đó là tất cả cho bây giờ. Nếu bạn thích bài viết, hãy nhớ chia sẻ ý kiến phản hồi quý giá của bạn trong phần bình luận. Hãy cho chúng tôi biết ý kiến của bạn về cách bạn cho rằng là một cách tiếp cận tốt để xóa bộ nhớ cache RAM và buffer trong môi trường sản xuất và doanh nghiệp.