Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

Một trong những máy chủ tệp đang chạy Windows Server 2008 R2 gặp sự cố tải RAM cao dẫn đến sự cố với hiệu suất của máy chủ và ứng dụng. Hóa ra là bộ nhớ đã bị chèn bởi bộ đệm tệp hệ thống chứa hệ thống tệp tin siêu dữ liệu . Sự cố có thể ả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. Đây là yếu tố quan trọng nhất đối với các phiên bản Windows x64, trong đó kích thước của tệp siêu dữ liệu trong bộ nhớ có thể phóng to gần như bằng toàn bộ kích thước của RAM.

Tải RAM cao trên Máy chủ tệp của Windows

Sự cố tự biểu hiện như sau:trong Trình quản lý tác vụ, chúng tôi thấy rằng bộ nhớ vật lý đang bận bởi 95-99 %.

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

Trong Quy trình tab, không có bất kỳ quy trình bị rò rỉ nào với mức tiêu thụ bộ nhớ cao bất thường. Hơn nữa, nếu bạn tính tổng các giá trị gần đúng của bộ nhớ được sử dụng bởi tất cả các quy trình, bạn thậm chí sẽ không nhận được 50% bộ nhớ vật lý mà bạn có trên máy chủ của mình. Sau đó, những gì đang ăn ký ức?

Khắc phục việc sử dụng bộ nhớ cao bằng 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 (của Mark Russinovich). Tải xuống tệp lưu trữ chứa công cụ và chạy RAMMap.exe với đặc quyền của quản trị viên. Trong Số lượng sử dụng tab , chúng tôi thấy rằng Metafile đang sử dụng dung lượng RAM lớn nhất. (Trong trường hợp của chúng tôi, nó đang sử dụng 11 từ 25 GB RAM của máy chủ).

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

Siêu tệp trong Windows là gì?

Siêu tệp là một phần của bộ đệm ẩn hệ thống chứa siêu dữ liệu NTFS và được sử dụng để tăng hiệu suất của 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 siêu tệp. Do đó, trên các máy chủ tệp có số lượng tệp lớn, kích thước siêu tệp (bộ đệm NTFS) có thể vượt quá vài chục gigabyte.

Không thể tắt hoặc quản lý bộ đệm này bằng các công cụ Windows tích hợp sẵn. Giải pháp là 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 có thể.

Để giải phóng bộ nhớ, bạn có thể khởi động lại máy chủ, nhưng trong một thời gian nào đó, kích thước của siêu tệp trong bộ nhớ bắt đầu tăng lên đáng kinh ngạc.

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

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

Cách Dọn dẹp nhanh siêu tệp

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

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

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

Khắc phục việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2

Nhược điểm chính của phương pháp này là việc thanh toán bù trừ là thủ công và không thể thực hiện tự động.

Dịch vụ bộ nhớ đệm động để quản lý bộ nhớ đệm tệp

Một giải pháp khác, quan trọng hơn, về tải bộ nhớ cao bằng siêu tệp hệ thống tệp là cài đặt Động Bộ nhớ đệm Dịch vụ ( https://www.microsoft.com/en-us/download/details.aspx?id=9258). Dịch vụ này cho phép quản lý các thông số của bộ đệm MFT chuyên dụng bằng cách sử dụng các API hệ thống.

Quan trọng . Chỉ sử dụng giải pháp này nếu sự cố được mô tả ở trên xảy ra. 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 dẫn đến việc sử dụng nhiều bộ nhớ trên máy chủ của bạn.

Việc 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 thành % SystemRoot% \ System32 thư mục
  • Tạo DynCache dịch vụ sử dụ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 việc sử dụng bộ nhớ cao bằng Metafile trên Windows Server 2008 R2
  • Nhập DynCache.reg vào sổ đăng ký (nó 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ớ cache tối thiểu (MB) Khắc phục việc sử dụng bộ nhớ cao bằng 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 định, không nên đặt kích thước bộ nhớ cache lớn hơn một nửa RAM vật lý được cài đặt trên máy chủ. Sau khi thực hiện các thay đổi, bạn không cần khởi động lại DynCache vì tất cả các thay đổi đều được áp dụng động.

  • Chạy dịch vụ bằng lệnh sau: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ớ của siêu tệp đã ngừng vượt quá 4 GB mà 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.