Bộ nhớ Swap trên Linux

Dưới đây là bài viết giúp các bạn hiểu rõ hơn về Bộ nhớ Swap trên Linux và hướng dẫn cấu hình Swap trên trên Linux.

Linux chia RAM thành các vùng nhớ gọi là trang. Các trao đổi là quá trình mà một trang bộ nhớ được sao chép vào một không gian đĩa cứng được cấu hình sẵn, được gọi là không gian trao đổi, để phát hành từ bộ nhớ. Kích thước kết hợp của bộ nhớ vật lý và không gian trao đổi là năng lượng bộ nhớ ảo có sẵn. Trao đổi là cần thiết vì hai lý do quan trọng:

  • Khi hệ thống thống yêu cầu nhiều bộ nhớ hơn khả năng vật lý, hạt nhân sẽ di chuyển các trang ít sử dụng vào không gian hoán đổi và cấp quyền cho bộ nhớ ram cho ứng dụng hiện tại hiện đang yêu cầu bộ nhớ.
  • Một số lượng đáng kể các trang được sử dụng bởi một ứng dụng trong giai đoạn khởi động của nó chỉ có thể được sử dụng để khởi tạo hệ thống và không bao giờ được sử dụng lại.

Do đó, hệ thống có thể sử dụng trao đổi trên các trang đó và giải phóng bộ nhớ cho các ứng dụng khác hoặc thậm chí cho bộ đệm trên đĩa. Tuy nhiên, trao đổi có một nhược điểm. So với RAM, Đĩa chậm hơn nhiều. Tốc độ bộ nhớ được đo bằng nano giây, trong khi tốc độ đĩa được đo bằng mili giây, do đó truy cập vào đĩa chậm hơn chục nghìn lần so với bộ nhớ ram. Càng nhiều hoán đổi xảy ra, Hệ thống của bạn sẽ càng chậm. Đôi khi hoán đổi mức cao tạo ra các nút cổ chai, Như một tình huống cụ thể xảy ra: Một trang bị tráo đổi xảy ra và sau đó lan man rất nhanh và liên tục. Trong những tình huống như vậy, hệ thống phải vật lộn để tìm bộ nhớ trống và giữ cho các ứng dụng khác nhau chạy cùng một lúc. Trong trường hợp này, chỉ thêm nhiều ram sẽ giúp ổn định hệ thống.

Linux có hai dạng không gian hoán đổi: Phân vùng tạo hoán đổi và tệp hoán đổi. Phân vùng trao đổi là là một phần độc lập của đĩa cứng, được sử dụng riêng cho trao đổi, không ai khác có thể cư trú ở đó. Tệp hoán đổi là tệp đặc biệt nằm trong hệ thống tệp giữa hệ thống và tệp dữ liệu. Để xem nó được tạo ra như thế nào và vị trí không gian hoán đổi mà bạn sở hữu.

Swap memory là gì?

Swap memory được sử dụng khi hệ thống của bạn quyết định rằng nó cần thêm bộ nhớ ram cho quá trình hoạt động và bộ nhớ ram hiện tại không còn đủ để sử dụng. Nếu điều đó xảy ra, các tài nguyên và dữ liệu tạm thời không hoạt động trên bộ nhớ ram sẽ được di chuyển để lưu trữ vào không gian Swap để giải phóng bộ nhớ ram để sử dụng vào việc khác

Lưu ý rằng thời gian truy cập vào vùng swap là chập hơn nhiều, do đó bạn không nên coi việc sử dụng Swap là một phương pháp thay thế cho ram.

  • Là khái niệm của bộ nhớ ảo được sử dụng trên Linux. Nếu hết RAM hệ thống sẽ tự động dùng một phần ổ cứng để làm bộ nhớ cho các ứng dụng hoạt động

Khi nào cần sử dụng Swap memory?

  • Tối ưu hóa bộ nhớ: Hệ thống sẽ di chuyển các tài nguyên và dữ liệu hiện không được sử dụng trong bộ nhớ ram đến Swap, điều này giúp hệ thống phục vụ các mục đích khác tốt hơn.
  • Tránh các trường hợp không lường trước: Trong một số trường hợp, Bạn không dự tính được bộ nhớ dành cho các chương trình mà bạn chuẩn bị thử nghiệm, hoặc một  trương trình bất kỳ nào đó nổi điên lên, hoặc bất cứ điều gì đó bất thường

Các bước tạo Swap file

  • Kiểm tra phân vùng Swap:
  • Kiểm tra dung lượng còn trống trên ổ cứng:
    # df -hswa
  • Tạo file Swap :
    • Trong đó :
      • bs : là đơn vị tính( M , G ,K )
      • count : là số lượng bs cấp cho swap file
        ⇒ swap file có dung lượng = count*bs
  • Tạo phân vùng Swap :
  • Kích hoạt swap :
  • Kiểm tra lại trạng thái swap :
  • Lưu cấu hình vào file /etc/fstab :
  • Bảo mật file swap :

Cấu hình Swappiness 

  • Swappiness là mức độ ưu tiên sử dụng swap , Khi lượng ram còn lại bằng giá trị của swappiness ( tính theo %) thì Swap sẽ được sử dụng.
  • Swappiness có giá trị sử dụng từ 0 → 100:
    • = 0 : swap chỉ được sử dụng khi ram đã sử dụng hết 
    • = 10 : swap được sử dụng khi Ram còn 10%
    • = 60 : swap được sử dụng khi Ram còn 60%
    • = 100 : swap được ưu tiên sử dụng như Ram
      ⇒ Do swap chậm hơn ram ⇒ nên đặt swappiness về gần 0 ( hoặc chỉnh là 10)
  • Kiểm tra mức độ dùng của swap hệ thống bằng lệnh:
  • Chỉnh thông số swappiness mặc định thành 10:
  • Lưu thông số swappiness vào file /etc/sysctl.còn
    # vi /etc/sysctl.conf
    ⇒ Thêm dòng “vm.swappiness = 10 “
    ⇒ Khởi động lại server và kiểm tra.

Thay đổi dung lượng swapfile 

  • Tắt swap :
  • Xóa file Swap :
  • Tạo mới file swap với dung lượng mong muốn:

  • Tạo Phân vùng swap mới:
  • Kích hoạt swap :
  • Bảo mật file swap :

  • Kiểm tra lại swap :

Lưu ý : khi thay đổi dung lượng , swappiness vẫn được giữ nguyên

Qua bài viết giúp các bạn hiểu rõ hơn về Swap Memory trên hệ điều hành Linux.

Was this article helpful?

Related Articles