Apakah ini praktik yang baik untuk menggunakan Kompresi NTFS pada folder dan file Log IIS?
Saya bisa turun dari 20GB ke 7GB dengan melakukan ini. Log IIS adalah per hari, dan memiliki ukuran rata-rata 20MB tetapi beberapa hari yang ekstrem memiliki 200MB.
Saya bertanya-tanya apakah IIS harus membuka seluruh file dalam memori, memaksa NTFS unzip 20MB (atau 200MB dalam kasus ekstrim) setiap kali? Atau adakah sihir yang memungkinkan IIS untuk menambahkan konten? Apa dampak sistem? Bisakah itu menjadi masalah jika kita meningkatkan traffic kita?
Haruskah saya membaginya per jam, bukan per hari?
Adakah makalah resmi Microsoft tentang ini? Saya tidak dapat menemukannya.
iis
logging
ntfs
compression
Malartre
sumber
sumber
Jawaban:
Karena Evan sudah memberikan jawaban umum, saya ingin membahas dua sub-pertanyaan Anda:
Apakah IIS membersihkan log setiap X menit?
http.sys, bagian mode kernel IIS bertanggung jawab untuk logging dan buffer data dalam memori sebelum menulisnya ke file log. Saya tidak yakin tetapi saya tidak berpikir itu melakukan pembilasan setiap x detik, lebih mungkin setelah buffernya sudah penuh.
Apakah seluruh file perlu dibaca saat menambahkan satu baris?
Tidak, NTFS menulis pembaruan ke file ke dalam cache sendiri dan kemudian mengompres dan menambahkan data secara tidak sinkron ke file. Menulis ke file terkompresi tidak lebih lambat secara signifikan daripada file terkompresi.
Jadi seharusnya tidak ada masalah dengan menggunakan kompresi NTFS pada file log IIS.
Sumber:
IIS 7 Resource Kit, Bab 15: Logging - Microsoft Press 2008
Windows Internals 6th Edition Part2, Bab 12: Sistem File Microsoft Press 2012
sumber
If you run a program that uses transaction logging and that constantly writes to a database or log, configure the program to store its files on a volume that is not compressed. If a program modifies data through mapped sections in a compressed file, the program can produce "dirty" pages faster than the mapped writer can write them.
Pertanyaannya adalah, apa definisi dari terus - menerus ?Saya kompres log IIS saya di banyak server IIS, meskipun terutama server yang hosting Outlook Web Access / App atau situs web volume rendah. Saya tidak memiliki masalah dalam melakukannya, dan cukup seperti penghematan ruang disk.
Secara umum, Anda memperdagangkan CPU untuk penyimpanan dengan membuat keputusan ini. Jika Anda terikat dengan CPU untuk memulai maka ini mungkin bukan tradeoff yang baik. Untuk server OWA saya, yang dapat menumbuhkan gigabyte log sehari (terima kasih perangkat ActiveSync) Saya pikir tradeoffnya bagus.
Driver sistem file NTFS menangani kompresi, sehingga tidak mengubah cara IIS menulis ke file.
Edit:
Anda juga berpotensi menukar bandwidth I / O dan IOPS. Jika Anda memiliki volume yang cukup tinggi yang ditulis oleh log Anda adalah konsumsi sumber daya I / O yang signifikan, Anda juga dapat melihat penurunan konsumsi I / O karena mengaktifkan kompresi juga.
Satu-satunya cara Anda akan mengetahui bagaimana ini berdampak pada Anda adalah dengan membandingkannya sendiri. Ambil garis dasar dengan kompresi dinonaktifkan dan kemudian diaktifkan dan bandingkan. Tidak ada tongkat ajaib untuk melambai untuk mengetahui bagaimana itu akan berdampak pada Anda - ada terlalu banyak faktor non-deterministik dalam permainan.
sumber