Masalah cache sistem file yang tinggi pada Windows Server 2008 R2

Di salah satu server file menjalankan Windows Server 2008 R2 ada masalah dengan memori akses acak tinggi (RAM), mengakibatkan masalah dengan kinerja server dan layanan yang berjalan di atasnya. Ternyata, memori itu tersumbat cache file sistem dengan metadata sistem file. Semua server file dengan sejumlah besar file yang diakses pengguna berpotensi terpengaruh. Masalah paling kritis adalah untuk versi 64-bit Windows, di mana ukuran metafile dalam memori dapat menempati hampir seluruh kapasitas RAM yang dipasang. Dalam artikel ini kita akan memahami bagaimana masalah memanifestasikan dirinya, mengidentifikasi sumber dan solusinya.

Konten:

  • Beban RAM tinggi pada server file Windows
  • Apa itu metafile di Windows??
  • Hapus metafile MFT dengan cepat dalam memori
  • Layanan Cache Dinamis untuk Manajemen File Cache

Beban RAM tinggi pada server file Windows

Masalahnya memanifestasikan dirinya sebagai berikut: di Task Manager (Task Manager) kita melihat bahwa di server RAM ditempati oleh 95-99%.

Dengan masuk ke tab proses, Anda tidak akan dapat menemukan beberapa proses bocor dengan konsumsi memori tinggi yang tidak normal. Selain itu, jika Anda menambahkan secara acak memori yang ditempati oleh semua proses yang ditampilkan di task manager, Anda bahkan tidak dapat menutup hingga 50% dari memori fisik yang dipasang di server. Jadi siapa yang memakan semua ingatannya?

Utilitas RAMMap (Mark Russinovich) dapat memberikan gangguan nyata dalam penggunaan RAM. Kami mengunduh arsip dengan utilitas dan menjalankan file RAMMap.exe dengan hak administrator dari arsip. Tab Gunakan Hitungan, kita melihat bahwa memori fisik yang paling objek gunakan Metafile (dalam kasus kami, ini menyumbang 11 dari 25 GB RAM server).

Apa itu metafile di Windows??

Metafile - itu adalah bagian dari cache sistem yang berisi metadata sistem file NTFS dan digunakan untuk meningkatkan kecepatan sistem file ketika mengakses file. Metadata NTFS termasuk data MFT (Master File Table). Untuk setiap file / folder yang telah diakses pengguna, blok yang sesuai dibuat dalam metafile dengan ukuran minimal 1 Kb (entri tentang atribut dari setiap file membutuhkan 1kb dan setiap file memiliki setidaknya satu atribut). Dengan demikian, pada server file dengan sejumlah besar file yang terus-menerus diakses, ukuran cache sistem NTFS (metafile) dapat mencapai beberapa gigabyte.

Menonaktifkan cache ini atau mengelolanya menggunakan alat Windows standar akan gagal. Sebagai solusi, Anda dapat meningkatkan jumlah memori di server, tetapi ini masih jauh dari mungkin..

Jika Anda me-reboot server, memori yang digunakan oleh metafile dibebaskan, tetapi seiring waktu, ukuran metafile dalam memori masih mulai tumbuh tak terkendali.

Misalnya, Anda dapat memperkirakan ukuran tabel MFT menggunakan utilitas Russinovich lain - ntfsinfo. Misalnya, dalam contoh kami untuk disk 2 TB, ukuran tabel MFT adalah 13 GB.

Hapus metafile MFT dengan cepat dalam memori

Utilitas RAMMap menyediakan kemampuan untuk dengan cepat menghapus memori yang digunakan dari sampah tanpa perlu me-reboot server. Untuk melakukan ini, pilih bagian di menu Kosong -> Set Sistem Kerja Kosong. Setelah operasi ini, ukuran memori di bawah metafile menurun puluhan kali, dan persentase RAM yang digunakan oleh server turun dari 95% menjadi 26%.

Kerugian utama dari metode ini adalah proses pembersihan manual dan tidak terotomatisasi dengan cara apa pun..

Layanan Cache Dinamis untuk Manajemen File Cache

Solusi lain yang lebih kardinal untuk masalah beban RAM yang tinggi adalah metafile sistem file  Dinamis Cache Layanan (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Layanan ini melalui API sistem memungkinkan Anda mengelola parameter cache yang dialokasikan.

Itu penting. Gunakan solusi ini hanya jika Anda memiliki masalah yang dijelaskan di atas. Menginstal layanan ini tidak akan menjadi solusi universal karena alasan lain kehabisan memori di server.

Menginstal DynCache cukup sederhana (petunjuk terperinci ada di arsip bersama program).

  1. Salin file ke Dyncache.exe ke katalog  % SystemRoot% \ System32
  2. Buat layanan Dyncache timsc buat DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = tipe otomatis = milik DisplayName = "Layanan Cache Dinamis"
  3. Impor file Dyncache.reg ke registri (berisi nilai default)
  4. Ubah nilai kunci registri berikut HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Parameter
    • MaxSystemCacheMBytes: 4096 (dec) - ukuran cache maksimum
    • MinSystemCacheMBytes: 100 (dec) - ukuran minimum

    Catatan. Pengaturan ini dan pengaturan layanan DynCache lainnya harus disesuaikan sesuai dengan jumlah memori yang dipasang dan beban server, kinerja yang diperlukan, dll. Sebagai aturan, Anda tidak boleh mengatur ukuran cache lebih dari setengah RAM yang terpasang di server. Setelah melakukan perubahan, layanan DynCache tidak perlu dihidupkan ulang. perubahan dilacak secara dinamis.
  5. Jalankan layanan dengan perintah sc mulai DynCache
Catatan. Jika Anda perlu menghapus layanan, gunakan instruksi.

Dalam kasus kami, setelah menginstal layanan DynCache, penggunaan memori oleh metafile berhenti melebihi nilai 4 GB yang kami tetapkan. Pengguna tidak mengungkapkan masalah dengan penurunan kinerja server file.