Pada instalasi Small Business Server 2011 seluruh proses w3wp.exe tampaknya menggunakan banyak memori yang tidak proporsional. Instalasi SBS out-of-the-box hadir dengan total 7 situs dan 20 kumpulan aplikasi ASP.NET (Sharepoint, Exchange, WSUS dan hal-hal khusus SBS seperti Remote Web Workplace).
Selusin proses w3wp.exe yang dihasilkan cenderung mengkonsumsi lebih dari 4 GB memori server dari waktu ke waktu dengan kumpulan aplikasi puncak menjadi milik WSUS dengan sekitar 800 MB di set kerja. Secara manual mendaur ulang kumpulan aplikasi melalui IIS MMC membantu sementara mengurangi penggunaan memori (proses w3wp.exe menyusut kembali menjadi 10 MB, beberapa dari mereka menumbuhkan kembali dengan cepat), tetapi jelas bukan sesuatu yang ingin dilakukan admin sepanjang hari. Saya tidak dapat menemukan rekomendasi untuk daur ulang otomatis dari kumpulan aplikasi pra-instal SBS, jadi saya agak enggan untuk "lakukan saja" pada sistem produksi.
Penelitian saya di internet tentang bagaimana membatasi ini hanya memunculkan sejumlah posting yang menyatakan bahwa konsumsi memori w3wp tidak akan merugikan tetapi menguntungkan kinerja karena memori akan "dibebaskan ketika dibutuhkan oleh aplikasi lain". Masalahnya adalah itu tidak berhasil:
- untuk satu, SBS adalah server multi-peran, salah satu peran (yang utama) menjadi penyimpanan jaringan CIFS yang sangat diuntungkan dari cache sistem file yang lagi-lagi bergantung pada memori yang "bebas" seperti dalam "tidak digunakan oleh proses lain dalam cara "- kumpulan aplikasi ASP.NET yang jarang melihat pengguna dan memakan memori kontraproduktif
- hal lain adalah bahwa saya masih harus melihat penurunan substansial dari contoh w3wp konsumsi memori pada kekurangan memori - apa yang saya lihat adalah penurunan kecil secara signifikan kurang dari 100 mb dan sebaliknya bertukar berlebihan - lagi-lagi melukai kinerja
Saya hampir tidak pernah mengelola aplikasi IIS atau ASP.NET, jadi ide apa pun tentang cara memangkas persyaratan memori secara efektif untuk kumpulan aplikasi dipersilahkan.
sumber
Jawaban:
Selamat datang di dunia indah SBS. Persyaratan yang disarankan untuk RAM = 10GB ... dan MEMBUTUHKAN minimal 8gb. ( menurut Microsoft .) untuk alasan yang bagus. Ini bukan mesin yang diminyaki dengan baik ... sangat ceroboh, kembung, dan memiliki segalanya di bawah matahari yang disatukan. Semakin banyak RAM yang bisa Anda lemparkan ke kotak itu ... semakin baik. Sayangnya, Anda dibatasi maksimal 32 GB. Imho ... yang konyol.
sumber
Inilah yang akhirnya saya lakukan:
mengatur cache aplikasi server untuk .NET AppPools ke nilai rendah (5 MB) dengan mengatur parameter privateBytesLimit di
web.config
pada%WINDIR%\Microsoft.NET\Framework\<version>\Config
seperti yang disarankan dalam jawaban ini :Ini membantu mengurangi penggunaan memori hingga lebih dari 1 GB dengan pengaturan daur ulang kolam standar.
Rupanya, menggunakan "server" jenis pengumpul sampah (
<gcServer = "true">
) dapat menyebabkan konsumsi memori yang signifikan juga, tetapi sepertinya,<gcServer>
disetel ke false secara default.sumber
Jika Anda menduga bahwa konsumsi memori yang dihasilkan adalah masalah karena cacat perangkat lunak, Anda dapat menggunakan Microsoft DebugDiag 1.2 untuk membuat dump memori penuh dan menganalisis dump untuk masalah umum. Jika Anda berpikir mungkin ada masalah memori, Anda harus mengaktifkan pelacakan kebocoran dengan memilih opsi "Monitor untuk Kebocoran" dan membiarkannya berjalan beberapa saat sebelum membuat / menganalisis dump.
DebugDiag 1.2 Unduh
https://www.microsoft.com/download/en/details.aspx?id=26798
sumber
Anda tidak memerlukan kumpulan aplikasi terpisah untuk setiap aplikasi, hanya aplikasi yang tidak dapat diandalkan atau Anda ingin memprioritaskan. Banyak yang dapat berbagi (memisahkan versi .net yang berbeda). Anda kemudian dapat lebih realistis membatasi memori yang akan digunakan kumpulan aplikasi. Seharusnya tidak perlu berulang kali mendaur ulang kolam lebih dari sekali sehari.
Juga, hanya ada begitu banyak memori yang dapat dibebaskan dengan cara ini. Meskipun beberapa di antaranya adalah cache, setiap aplikasi membutuhkan sejumlah memori kerja yang sangat tergantung pada aplikasi web tertentu. Mencoba membatasi ini terlalu banyak akan membuat segalanya terhenti.
Masalahnya sebenarnya adalah bahwa SBS mencoba melakukan terlalu banyak sekaligus, Anda perlu melihat apa yang sebenarnya Anda gunakan dan mematikan apa yang tidak Anda lakukan.
Tetapi jujur untuk hanya 11 pengguna, di mana sisa memori akan pergi? Exchange dan SQL untuk penggunaan ringan tentu saja tidak membutuhkan lebih dari 12GB!
sumber