Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Một trong những máy chủ tệp chạy Windows Server 2008 R2 gặp phải vấn đề tải RAM cao dẫn đến sự cố về hiệu suất máy chủ và ứng dụng. Nguyên nhân là bộ nhớ bị chiếm dụng bởi bộ nhớ đệm hệ thống tệp chứa siêu dữ liệu hệ thống tệp. Vấn đề này có khả năng ảnh hưởng đến tất cả các máy chủ tệp có số lượng lớn tệp được người dùng truy cập. Nó nghiêm trọng nhất đối với các phiên bản Windows x64, trong đó kích thước tệp siêu dữ liệu trong bộ nhớ có thể mở rộng gần như toàn bộ dung lượng RAM.

Tải RAM Cao Trên Máy Chủ Tệp Windows

Vấn đề biểu hiện như sau: trong Task Manager, chúng ta thấy bộ nhớ vật lý bị chiếm dụng 95-99%.

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Trong tab Processes, không có bất kỳ tiến trình rò rỉ nào với mức tiêu thụ bộ nhớ bất thường cao. Hơn nữa, nếu bạn cộng tổng giá trị xấp xỉ bộ nhớ được sử dụng bởi tất cả các tiến trình, bạn甚至不会得到服务器上物理内存的 50%。那么是什么在消耗内存呢?

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Dữ liệu thực tế về việc sử dụng RAM có thể được thu thập với sự trợ giúp của tiện ích nhỏ – RAMMap (do Mark Russinovich phát triển). Tải xuống kho lưu trữ chứa công cụ và chạy RAMMap.exe với quyền quản trị viên. Trong tab Use Counts, chúng ta thấy Metafile đang sử dụng lượng RAM lớn nhất. (Trong trường hợp của chúng tôi, nó đang sử dụng 11 trong 25 GB RAM của máy chủ).

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Metafile Trong Windows Là Gì?

Metafile là một phần của bộ nhớ đệm hệ thống chứa siêu dữ liệu NTFS và được sử dụng để tăng hiệu suất hệ thống tệp khi truy cập tệp. Siêu dữ liệu NTFS bao gồm dữ liệu của MFT (Master File Table). Đối với mỗi tệp hoặc thư mục được người dùng truy cập, một khối tương ứng ít nhất 1 KB (bản ghi thuộc tính của mỗi tệp là 1 KB, và mỗi tệp có ít nhất một thuộc tính) được tạo trong metafile. Do đó, trên các máy chủ tệp có số lượng lớn tệp, kích thước metafile (bộ nhớ đệm NTFS) có thể vượt quá vài chục gigabyte.

Không thể vô hiệu hóa bộ nhớ đệm này hoặc quản lý nó bằng các công cụ tích hợp sẵn của Windows. Là một giải pháp, bạn có thể tăng kích thước bộ nhớ trên máy chủ, nhưng không phải lúc nào cũng khả thi.

Để giải phóng bộ nhớ, bạn có thể khởi động lại máy chủ, nhưng sau một thời gian, kích thước metafile trong bộ nhớ bắt đầu tăng trưởng không ngờ.

Ví dụ, bạn có thể ước tính kích thước MFT bằng một công cụ khác của Russinovich – ntfsinfo. Trong trường hợp của chúng tôi, kích thước MFT trên ổ đĩa 2 TB là 13 GB.

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Cách Nhanh Dọn Dẹp Metafile

RAMMap cho phép nhanh chóng xóa bộ nhớ được sử dụng khỏi rác MFT mà không cần khởi động lại máy chủ. Để làm điều đó, chọn Empty -> Empty System Working Set trong menu.

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Sau đó, kích thước metafile trong bộ nhớ giảm xuống hàng chục lần, và tỷ lệ sử dụng RAM bởi CPU giảm từ 95% xuống 26%.

Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

Nhược điểm chính của phương pháp này là việc dọn dẹp là thủ công và không thể thực hiện tự động.

Dịch Vụ Dynamic Cache Để Quản Lý Bộ Nhớ Đệm Tệp

Một giải pháp triệt để hơn cho vấn đề tải bộ nhớ cao do metafile hệ thống tệp là cài đặt Dynamic Cache Service (https://www.microsoft.com/en-us/download/details.aspx?id=9258). Dịch vụ này cho phép quản lý các tham số bộ nhớ đệm MFT chuyên dụng bằng cách sử dụng API hệ thống.

Quan trọng. Chỉ sử dụng giải pháp này nếu xảy ra vấn đề được mô tả ở trên. Việc cài đặt dịch vụ này sẽ không phải là giải pháp chung cho các nguyên nhân khác gây ra sử dụng bộ nhớ cao trên máy chủ của bạn.

Cài đặt DynCache khá dễ dàng (có hướng dẫn chi tiết trong kho lưu trữ).

  • Sao chép tệp DynCache.exe vào thư mục %SystemRoot%\System32
  • Tạo DynCache dịch vụ bằng lệnh này: sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service" Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2
  • Nhập DynCache.reg vào đăng ký (chứa các giá trị mặc định)
  • Thay đổi giá trị của các khóa đăng ký sau: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters
    1. MaxSystemCacheMBytes: 4096 (dec) – kích thước bộ nhớ đệm tối đa (MB)
    2. MinSystemCacheMBytes: 100 (dec) – kích thước bộ nhớ đệm tối thiểu (MB)Khắc phục sự cố bộ nhớ cao do Metafile trên Windows Server 2008 R2

    Lưu ý. Các cài đặt này và các cài đặt dịch vụ DynCache khác phải được chỉnh sửa theo kích thước RAM, tải máy chủ, hiệu suất yêu cầu, v.v. Theo quy tắc chung, không khuyến khích đặt kích thước bộ nhớ đệm lớn hơn một nửa RAM vật lý cài đặt trên máy chủ. Sau khi thực hiện thay đổi, bạn không cần khởi động lại DynCache, vì tất cả các thay đổi được áp dụng động.

  • Chạy dịch vụ bằng lệnh: sc start DynCache

Trong trường hợp của chúng tôi, sau khi dịch vụ DynCache được cài đặt, việc sử dụng bộ nhớ bởi metafile không còn vượt quá 4 GB chúng tôi đã đặt. Người dùng không báo cáo bất kỳ vấn đề hiệu suất nào trên máy chủ tệp.