Saya perhatikan server produksi saya "svchost.exe -k netsvcs" menempati memori ram> 1GB, terus, yang menurut saya agak berlebihan.
Inilah yang akan diberikan daftar tugas / svc kepada saya untuk proses ini:
Appinfo, CertPropSvc, gpsvc, IKEEXT,
iphlpsvc, LanmanServer, ProfSvc, Schedule,
SENS, SessionEnv, ShellHWDetection,
Winmgmt, wuauserv
Saya bertanya-tanya apa yang mungkin menjadi proses terdaftar yang bertanggung jawab atas kebocoran memori ini dan bagaimana cara memperbaikinya. Adakah yang pernah memiliki perilaku yang sama di masa lalu?
Server menjalankan Windows Server 2008 R2 (Build 7601: Service Pack 1) dan fungsi utamanya adalah untuk menjalankan pekerja prosesor aplikasi in-house.
windows-server-2008-r2
svchost
agenvr
sumber
sumber
SC Config Servicename Type= own
. Lihat serverfault.com/questions/12278/...Jawaban:
Pertanyaannya adalah, apakah ini bocoran? Anda mengatakan bahwa penggunaan memori "stabil".
Kebocoran = penggunaan memori meningkat seiring waktu, tidak pernah berkurang, jadi Anda harus memuat ulang server sesekali.
Jika taks tetap di ~ 1 GB untuk waktu yang lama (katakanlah, dua minggu), maka situasinya sangat normal. Perangkat lunak modern dibuat untuk menggunakan memori bebas kapan pun diperlukan, dan saya tahu beberapa program yang hanya akan mengambil apa pun yang ada hanya untuk menghemat waktu pada alokasi memori.
Jika tidak menghalangi operasi sistem, jangan menyentuhnya.
sumber
Alokasi memori sangat mahal pada siklus CPU dibandingkan dengan menggunakan kembali memori yang ada dan dialokasikan. Sering kali begitu program dijalankan, sampai selesai fungsinya, ia tidak akan "melepaskan" memori ini.
Misalnya, Firefox menyimpan memori untuk beberapa waktu. Jika Anda membiarkan komputer menyala selama satu minggu dengan Firefox terbuka, Anda akan melihat bahwa ukurannya akan terus bertambah. Setelah YouTubing, Google Play Music-ing, dan browsing, menambang mencapai 2-4GB dalam memori - yang menyusut hingga 300MB setelah saya memulai kembali proses. Ini karena fitur caching-nya, dan perilaku ini adalah desain.
Saya cenderung percaya bahwa proses SVCHost melakukan persis seperti yang seharusnya. Berapa banyak layanan yang dijalankan server Anda? 1GB Tidak terdengar mengkhawatirkan - meskipun itu tergantung pada layanan yang Anda jalankan.
sumber
Sebagai langkah selanjutnya, jika Anda ingin menyelidiki lebih lanjut, saya akan menginstal proses explorer (procexp.exe) yang dapat Anda temukan di situs Microsoft. Itu akan memberi Anda layanan apa yang menggunakan proses ini (lihat tangkapan layar dari procexp) Anda kemudian dapat menghentikan / memulai layanan dan melihat apakah layanan tertentu dikaitkan dengan melepaskan / memperoleh alokasi memori yang besar. Ini juga akan memberi tahu Anda apakah itu memori yang ditetapkan Bekerja atau Pribadi (= terutama tumpukan). Jika dikaitkan dengan layanan tertentu maka Anda akan memiliki jalur yang lebih jelas untuk penelitian lebih lanjut.
Tak perlu dikatakan Anda perlu melakukan pengujian ini di jendela pemadaman / pemeliharaan yang disepakati atau mereproduksi pada server uji karena Anda akan mengganggu operasi normal. Reboot dan periksa daftar layanan kembali ke menjalankan normal Anda setelah pengujian selesai.
Tangkapan layar:
sumber