Windows 2008: Direktori WinSXS tumbuh tidak terkendali, memblokir server

62

Saya menjalankan Server virtual (yang di-host dari jarak jauh) dengan Windows 2008 Server untuk klien. Awalnya, memiliki ruang 10 GB. Selama beberapa minggu - di mana tidak ada yang dilakukan pada mesin kecuali pekerjaan normal menggunakan sistem icket berbasis web -, Windows mulai mengisi direktori "winxs" yang terkenal sehingga pada akhirnya, hard disk adalah penuh dan kami harus memesan 5 GB lagi. Sekarang, tiga minggu kemudian, 5 GB ini telah dikonsumsi oleh winx juga, dan sekali lagi saya tidak dapat bekerja pada mesin. Winsxs sekarang 8 GB besar, sisa direktori windows 5 GB.

Saya telah menemukan berbagai sumber di web yang menggambarkan masalah yang sama. Tampaknya, Windows 2008 menyimpan semua versi bahasa untuk semua DLL yang diunduh dalam proses pembaruan normal. Hanya menghapus hal-hal yang digambarkan berbahaya karena mengandung komponen-komponen vital. Saya belum menemukan alat atau instruksi apa pun untuk mengidentifikasi dan menghapus file-file yang tidak lagi diperlukan.

Apa yang dapat saya? Apakah ini perilaku normal dan jika ya, bagaimana server lain dengan ruang yang sama terbatas mengelola? Apakah ada sesuatu yang bisa saya matikan atau nyalakan?

Dari peran server yang ditentukan sebelumnya, hanya "Layanan file" (atau apa pun namanya dalam bahasa Inggris, ini server swiss) diaktifkan. Selain itu, saya telah menginstal Apache, mySQL, dan Subversion. Pembaruan otomatis diaktifkan.

Sunting: Masalahnya masih ada.

Catatan: Saya sadar bahwa direktori WinSXS terutama terdiri dari symlink dan bahwa pengguna sering panik melihat ukurannya. Namun, Dari ruang 15 GB, saya memiliki 1,5 MB yang digunakan oleh program dan data, dan tidak ada yang tersisa. Aku senang bisa mengakses mesin sialan itu. * Saya sudah membebaskan 1 GB data, yang diisi oleh windows Windows dalam waktu 24 jam. Ini seperti dalam film horor. Apa yang saya coba:

  • Menginstal SP2 (yang datang dengan compcln.exe) bukanlah suatu pilihan, karena ruang disk tidak cukup untuk itu.
  • Tidak ada vsp1clean.exe di mesin, mungkin karena SP1 telah bergabung ke dalam sistem. Bahkan, tidak ada file bernama * cln.exe di mana pun.
  • Tidak ada salinan bayangan. Salinan bayangan tidak aktif.
  • Sejauh yang saya tahu, tidak ada titik pemulihan sistem aktif.
  • Satu-satunya peran server yang diaktifkan adalah "server file".
  • Fungsi "pembersihan" standar (klik kanan pada drive C:) menawari saya 2 MB isi sampah yang membingungkan dan file internet sementara.
  • Menggunakan salah satu skrip "cleanup winsxs" di sekitar bukanlah pilihan bagi saya, mereka semua terlihat terlalu teduh. Saya tidak dapat menemukan apa pun secara langsung dari Microsoft untuk mengatasi masalah ini.
Pekka mendukung GoFundMonica
sumber
Apakah Anda menyelesaikan ini pada akhirnya?
UpTheCreek
@UpTheCreek sebenarnya, sayangnya, tidak! Penyedia memberi kami 5 GB ruang tambahan pada VPS, yang tidak diisi Windows beruntung. Tetapi direktori Windows masih menempati 20 GB. Kontrak akan segera habis, dan kami akan beralih perusahaan hosting.
Pekka mendukung GoFundMonica

Jawaban:

24

Direktori WinSxS hampir tidak memakan ruang yang dilaporkan oleh Explorer karena menggunakan Hard Links ke file fisik, bukan file aktual. Explorer hanya memiliki masalah pelaporan ukuran tautan keras.

Artikel tentang Ruang Disk ini (dirujuk di sini http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/ ) memiliki penjelasan yang bagus tentang direktori WinSxS.

Mengenai masalah penggunaan disk Anda yang sebenarnya - Anda dapat mencoba menjalankan COMPCLN.EXE untuk melihat apakah Anda dapat membersihkan paket layanan lama dan file perbaikan panas, yang seharusnya cukup membantu. Saya juga akan melihat direktori logging untuk melihat apakah ada sesuatu yang terjadi.

Christopher_G_Lewis
sumber
Ini kedengarannya bagus, namun direktori Windows tampaknya menghabiskan> 12GB (ini adalah ruang 15GB, program & data yang bekerja menempati 2,5 GB, dan tidak ada ruang yang tersisa). Compcln.exe tidak ada pada 2008, apakah ada yang tahu perintah serupa di sana?
Pekka mendukung GoFundMonica
Kemungkinan W2K8 SP2 saja: news.softpedia.com/news/…
Christopher_G_Lewis
SP2 kedengarannya menarik, tetapi servernya penuh sehingga saya bahkan tidak bisa menginstalnya. Saya telah meminta penyedia untuk beberapa ruang tambahan selama beberapa hari tetapi mereka belum terbukti terlalu membantu di masa lalu. Ini benar-benar meresahkan, dan menyebabkan masalah parah. Saya membuka hadiah dan menambahkan beberapa tangkapan layar.
Pekka mendukung GoFundMonica
Saya menduga bahwa reimaging mesin dan menjalankan pembaruan bukan merupakan pilihan bagi Anda?
blueberryfields
Hanya sebagai pilihan terakhir, karena saya telah menginvestasikan banyak pekerjaan untuk mengatur semuanya ... Itu mungkin akan menyelesaikannya, tapi saya akan sangat senang bisa mengatasinya.
Pekka mendukung GoFundMonica
18

Saya berada di kapal yang sama dengan Anda. Saya memiliki 5 VM 2008 baru dan saya menonton mereka terus membutuhkan lebih banyak ruang disk selama setahun terakhir. Biarkan saya ilustrasikan dengan windrstat.

Berikut tangkapan layar dari server 2008 yang benar-benar baru :

teks alternatif 3,8 GB direktori winx

Sekarang, inilah tangkapan layar dari server produksi 2008 :

teks alternatif 5.4GB direktori winxs

Akhirnya tangkapan layar server 2008R2 yang benar-benar baru : teks alternatif direktori winx 5.4GB

Dari apa yang bisa saya katakan, tidak ada cara untuk memotong direktori winxs. WinSxS adalah singkatan dari Windows Side-by-Side. Dalam upaya mereka untuk mengurangi efek DLL neraka (yaitu Ketergantungan) Microsoft memutuskan untuk menjaga setiap versi setiap DLL yang pernah diinstal pada sistem Anda di direktori winsxs.

Ini berarti dua hal (saya pikir):

  1. Meskipun ada beberapa tautan keras di winxs, satu-satunya tautan keras harus dari tautan DLL saat ini. Dengan kata lain, DLL saat ini yang aktif dalam sistem di-hardlink kembali ke folder winxs ini.

  2. Semua versi DLL sebelumnya masih tersedia, dan dicadangkan di direktori winxs. Seperti yang dapat Anda lihat di semua contoh, jika direktori winxs benar-benar "sebagian besar tautan keras" tidak akan ada cara yang bisa menghabiskan lebih dari 50% dari penggunaan disk Anda saat ini. Sekarang bahkan jika memang benar bahwa direktori winxs adalah "sebagian besar hardlink", penggunaan 50% akan berarti seluruh drive C: Anda di-hardlink kembali ke direktori winxs.

Saya mencoba segalanya. Menghapus file lama, menghapus instalan patch, menghapus direktori "$" patch. Segala sesuatu.

Akhirnya saya akhirnya menumbuhkan semua partisi C: di semua server saya masing-masing menjadi 30GB. Ini hanya akan menjadi perbaikan sementara, karena direktori winxs akan terus tumbuh. Kabar baiknya, karena versi terbaru NTFS memungkinkan Anda untuk menumbuhkan partisi Anda tanpa harus reboot. Alangkah nyaman.

WinSxS bukan hanya direktori yang menjengkelkan, ini adalah metodologi baru untuk semua pengembang Windows. WinSxS tidak akan pergi dalam waktu dekat. Pengembang menggunakan WinSxS dan bergantung padanya untuk berada di sana sampai metodologi baru pengarsipan DLL atau resolusi dependensi menjadi tersedia.

Pada setiap kotak windows 2008/7 / Vista baru saya merasa bahwa 30GB C: hampir benar. Cukup ruang (untuk saat ini) untuk tambalan, log, dan beberapa aplikasi.

Saya tidak bisa menunggu sampai seseorang mengetahui semua ini dan mulai mengaktifkan kembali DLL pre-patch dengan manifes jahat , yang menjadi vektor serangan / eksploitasi.

Joseph Kern
sumber
1
Terima kasih, jika tidak ada cara ajaib untuk merampingkan WinSXS, saya akan menerima jawaban ini karena memberi tahu saya bahwa saya bukan satu-satunya yang mengalami hal ini. Sayang sekali sepertinya tidak ada solusi. Upgrade ke 30GB akan sulit dibenarkan, karena ini adalah hosting berbayar eksternal. Mungkin saya akan downgrade ke 2003 - tapi itu terdengar konyol juga ...
Pekka mendukung GoFundMonica
1
Ya, saya juga tidak terlalu senang dengan hal ini. Sepertinya winx bukan kumpulan tautan keras. Alih-alih memproyeksikan hardlink ke seluruh sistem, tetapi tampaknya ada beberapa ketidaksepakatan tentang itu juga. winvistaclub.com/f16.html ...
Joseph Kern
Saya juga ingin menyebutkan, bahwa saya tidak memiliki peran server yang diaktifkan pada server yang saya gunakan untuk contoh. Server produksi adalah server tomcat apache. Dan program yang saya gunakan untuk menemukan ruang drive windirstat.info
Joseph Kern
5
MS tidak menyatakan 32 GB sebagai persyaratan disk minimum: microsoft.com/windowsserver2008/en/us/system-requirements.aspx
Christopher_G_Lewis
5

15 GB tidak akan memotongnya dalam pengalaman saya, terutama jika itu adalah mesin 64 bit dengan beberapa aktivitas ...

Memperluas disk VPS dan kemudian partisi sistem harus mudah tanpa harus menginstal ulang apa pun, betapapun mahalnya. Menawarkan disk sistem kurang dari 60GB untuk Windows Server VPS modern tampaknya tidak dipikirkan sejak awal bahkan jika ~ 30GB dapat memotongnya untuk sementara waktu: 7

Pergi untuk menginstal 32 bit akan menghapus sedikit overhead, dan pergi untuk Server Core akan menghapus banyak. Server file 32 bit Server 2008 Core saya yang menjalankan svnserve, dfs, print serve dan sebagainya dan diperbarui secara teratur adalah sekitar 5 GB ... sedangkan 64 bit Server 2008 Standar saya yang melayani aplikasi web (asp.net dan php menggunakan IIS) membutuhkan 30 GB sekarang. Kedua metrik ini tidak termasuk penyimpanan data / partisi tentu saja, hanya sistem Windows, dan keduanya hanya contoh saya memiliki 64 bit Server 2008 disk sistem yang membutuhkan apa pun dari 10 hingga 35 GB saat ini.

Setiap alat, pemutakhiran atau aplikasi yang Anda instal akan menumbuhkan direktori winxs dan menghapus instalan hal-hal tidak akan selalu berdampak pada winxs karena sistem mungkin berpikir dependensi tersebut digunakan oleh alat lain.

Oskar Duveborn
sumber
5

Ini mungkin sudah terlambat untuk Anda, dan hanya berdasarkan pengalaman Vista, tetapi:

  1. Jangan percaya mereka yang mengatakan 'sebagian besar tautannya keras, jadi foldernya tidak sebesar yang terlihat' - ini benar, tetapi jika Anda kehabisan ruang disk, itu terlalu besar.
  2. Satu-satunya 'obat' yang pernah disarankan adalah menghapus aplikasi yang menambahkan mengasapi ke folder - tetapi tidak ada cara terdokumentasi yang saya tahu untuk menemukan penyebabnya.
  3. 'Obat' saya setelah gagal menemukan jawaban yang memuaskan adalah dengan brutal menghapus folder terbesar (dan tidak diinginkan), misalnya:

    • 6 versi 'pencarian bahasa alami Microsoft', masing-masing ~ 300 kB
    • Banyak font oriental yang tidak akan pernah saya gunakan (kadang-kadang 6 vns ini, sebagian besar identik)
    • dll, dll.

Dengan asumsi Anda mulai dengan cadangan (gambar) yang bagus, coba dan lihat!

Martin Gerhold
sumber
4

Jika memungkinkan, Anda bisa mencoba memindahkan WinSXS ke partisi lain sebagai solusinya. Setahu saya tidak ada cara untuk menyingkirkan konten WinSXS. Benda kecil yang lucu ini berada di jantung operasi Vista / Win2008, jadi ... Saya belum pernah mendengar yang lebih baik daripada memindahkannya ke partisi lain.

Berikut ini tautan ke blog yang menjelaskan cara melakukannya: Klik

Saya sarankan Anda melakukan full backup (bahkan lebih baik: gambar) dari seluruh partisi C: Anda sebelum mencoba prosedurnya. Pikiran Anda bahwa saya mencoba ini hanya pada Vista, bukan pada Win2008 Server.

imagodei
sumber
Ide bagus, tetapi dalam kasus saya (ini adalah VPS tanpa penyimpanan alternatif) sayangnya bukan pilihan.
Pekka mendukung GoFundMonica
--- dan membuat gambar tidak semudah itu untuk alasan yang sama - kalau tidak saya akan membuatnya dan mencoba menjalankannya di mesin saya sendiri untuk pemeriksaan lebih lanjut.
Pekka mendukung GoFundMonica
3

Jika penyebab utamanya adalah WindowsUpdate, maka saya akan mengatakan satu-satunya alternatif Anda untuk membeli lebih banyak ruang atau melakukan operasi file sistem adalah membatasi pertumbuhan yang disebabkan oleh pembaruan memicu-bahagia Microsoft.

Karena Anda terutama menggunakan platform aplikasi non-Microsoft, Anda mungkin dapat melakukannya tanpa 90-95% pembaruan "penting" ditekan.

Dengan demikian, yang dapat Anda lakukan adalah menonaktifkan pembaruan otomatis dan kemudian sangat selektif tentang pembaruan "penting" mana yang akan diterapkan. Hanya terapkan yang menambal kerentanan yang secara langsung membahayakan rencana keamanan Anda. Sebagian besar pembaruan "penting" mungkin tidak berlaku untuk skenario keamanan Anda, dan jika itu Anda lakukan, Anda mungkin dapat memodifikasi rencana keamanan Anda untuk melakukannya tanpa mereka (mis. Jangan menggunakan IE di server, gunakan layanan file alternatif, kencangkan keamanan jaringan) .

Matias Nino
sumber
3

Jika WinDirStat dan OS itu sendiri (lihat saja di bawah My Computer) melaporkan jumlah ruang yang sama yang digunakan, tidak sopan jika salah menghitung ukurannya sebagai tautan keras. Jika OS mengira Anda kehabisan ruang - ANDA LUAR RUANG.

Saya memiliki masalah ini di Storage Server 2008 dan DC (Server 2008). Tidak ada program lain selain pembaruan Windows yang telah diinstal pada DC, kedua server mengkonsumsi ruang 15GB di bawah WinSXS. Server Penyimpanan sudah diinstal sebelumnya oleh HP dengan 40GB pada C :, jadi saya juga menderita masalah ini. Ruang kosong hingga 5GB.

Ini diperbaiki pada Windows 8 / Server 2013 dengan menggunakan DISM untuk membersihkan pembaruan yang digantikan (dism.exe / online / cleanup-image / startcomponentcleanup) jadi jelas ini adalah masalah yang mereka akui, sayangnya tanpa perbaikan selain untuk meningkatkan bagi mereka yang terjebak dengan 2008

NickIzk99
sumber
3

Di Windows Server 2008 R2 Anda dapat menggunakan DISM untuk membersihkan WinSxS, tentu saja Anda tidak akan dapat memutar kembali pembaruan setelah Anda melakukan ini. Berikut penjelasannya: http://www.sqlskills.com/blogs/glenn/how-to-reclaim-disk-space-in-yind-windowswinsxs-directory-on-windows-server-2008-r2-sp1/

Singkatnya, Anda perlu menjalankan perintah berikut sebagai administrator:

DISM.exe /online /Cleanup-Image /spsuperseded

Saya tahu ini mungkin bukan solusi yang relevan untuk Anda karena Anda memiliki Windows Server 2008 (bukan R2 tampaknya), tetapi saya menemukan pertanyaan ini ketika mencari solusi untuk R2 sehingga mungkin berguna bagi sebagian orang.

Ynhockey
sumber
ini hanya menghapus file pra sp1, bukan file dari perbaikan terbaru yang datang kemudian.
Hubert Kario
1

Beberapa saran:

  • Di mana file swap Anda?

  • Siapkan mesin uji dengan perangkat lunak yang sama untuk melihat apakah Anda dapat mereplikasi masalah. Ini jelas tidak normal, dan satu-satunya hal yang dapat saya pikirkan adalah bahwa sesuatu pada kotak itu terus-menerus memodifikasi DLL (atau sesuatu seperti itu) dan dengan demikian Windows terus-menerus membuat cadangannya.

15GB sangat rendah untuk instalasi Windows 2008 - drive C: standar saya untuk Windows 2008 adalah 60GB.

John Röthlisberger
sumber
15GB adalah ukuran paket penyedia hosting virtual dan setiap ekstensi (kami mulai dari 10GB) sangat mahal. Itu juga sebabnya saya tidak bisa memindahkan file swap di tempat lain.
Pekka mendukung GoFundMonica
Oh saya lupa: Untuk alasan yang sama, mereplikasi mesin tidak mudah dilakukan. Ini akan menjadi pilihan terakhir kecuali ada yang berhasil.
Pekka mendukung GoFundMonica
Jadi ganti penyedia.
TomTom
1

http://tech.xlab.si/2009/07/move-winsxs-folder/

Menemukan artikel ini tetapi tidak pernah mencobanya .. sepertinya ada cara untuk berpindah folder winxs. jika nyone dapat mencoba ini silakan pergi thrugh dan beri tahu saya

techsmarty
sumber
Itulah tautan dari jawaban imagodei.
Cees Timmerman
1

Persyaratan Sistem yang diberikan Microsoft untuk Server 2008 adalah "Ruang disk: Minimum 32Gb atau lebih besar".

http://www.microsoft.com/windowsserver2008/en/us/system-requirements.aspx

Menurut Anda mengapa itu bisa berjalan dengan nyaman di setengah ruang itu?

TessellatingHeckler
sumber
Saya menyewa solusi VPS dari penyedia hosting besar yang awalnya adalah paket 10GB dengan 2008 Server pra-instal. Saya berasumsi mereka pasti telah menyediakan ini. Penyedia besar memiliki paket Windows 10GB atau 20GB: Lihat misalnya bit.ly/h0AZsP . Saya diberitahu oleh penyedia bahwa tambang adalah kasus aneh
Pekka mendukung GoFundMonica
Kesalahan saya, saya telah ditautkan ke persyaratan Server 2008 R2 SP1. Server 2008 membutuhkan 8Gb sebagai minimum - microsoft.com/latam/windowsserver2008/sysreqs.mspx - tetapi masih merekomendasikan 40Gb.
TessellatingHeckler
terima kasih untuk tautannya. Namun, bisa jadi OS ditingkatkan di antara - saya akan menyelidiki
Pekka mendukung GoFundMonica
0

Satu opsi untuk digunakan - jika itu hanya VPS lama yang murah yang Anda gunakan untuk hal-hal sederhana, maka ada baiknya mengaktifkan kompresi NTFS pada disk atau folder tertentu:

Ini mungkin memeras beberapa ruang dari drive. Artikel mengatakan untuk XP tetapi langkah-langkah yang sama pada Win7 / 2008:

David d C e Freitas
sumber
0

Saya mengalami masalah yang sama. Tentunya WinSxs sebagian harus disalahkan ... Tapi saya pikir masalahnya sebagian karena alat seperti WinDirStat menghitung ukuran file dan persimpangan ke file dengan cara yang sama. Persimpangan hanyalah penunjuk ke file, bukan duplikat dari semua blok yang membentuk file.

Saya telah menemukan bahwa VSS adalah penyebab yang lebih besar dalam masalah ini. Gunakan perintah berikut untuk melihat apakah VSS menghabiskan terlalu banyak ruang disk Anda, merebut kembali ruang itu, atau menetapkan batas yang lebih kecil:

vssadmin daftar shadowstorage

vssadmin Hapus ShadowStorage / For = C: / On = C:

vssadmin Ubah Ukuran ShadowStorage / For = C: / On = C: / MaxSize = 20%

Clayton
sumber