Windows 2008: каталог WinSXS безконтрольно зростає, блокуючи сервер


62

Я запускаю (віддалено розміщений) віртуальний сервер із сервером Windows 2008 для клієнта. Спочатку він мав 10 ГБ місця. Протягом декількох тижнів - протягом яких на машині нічого не робилося, крім звичайної роботи за допомогою веб-системи icket -, Windows почала наповнювати свою сумнозвісну каталогічку winxs настільки, що, врешті-решт, жорсткий диск був повний і нам довелося замовити ще 5 ГБ. Тепер, через три тижні, ці 5 ГБ також були спожиті winxs, і я знову не можу працювати на машині. Зараз Winsxs становить 8 ГБ, решта вікна - 5 Гб.

Я знайшов в Інтернеті різні джерела, які описують ту саму проблему. Мабуть, Windows 2008 зберігає всі мовні версії для всіх DLL, які він завантажує, у звичайному процесі оновлення. Тільки видалення матеріалів там описується як смертельно небезпечне, оскільки воно містить життєво важливі компоненти. Я не знайшов жодного інструменту чи інструкцій для виявлення та видалення тих файлів, які більше не потрібні.

Що я можу зробити? Це нормальна поведінка і якщо вона є, як керують інші сервери з однаково обмеженим простором? Чи можна щось вимкнути або ввімкнути?

З заздалегідь визначених ролей сервера активується лише "Файлові сервіси" (або як це називається англійською мовою, це швейцарський сервер). Крім того, я встановив Apache, mySQL та Subversion. Автоматичні оновлення активовані.

Редагувати: Проблема зберігається.

Примітка. Мені відомо, що каталог WinSXS складається переважно із символьних посилань і що користувачі часто панічно дивляться на його розмір. І все-таки, не маючи 15 ГБ місця, у мене 1,5 МБ, що використовується програмами та даними, і нічого не залишилося. Я радий, що я навіть можу отримати доступ до чортової машини. * Я вже звільнив 1 Гб даних, які заповнили Windows протягом 24 годин. Це як у фільмі жахів. Що я спробував:

  • Встановлення SP2 (що постачається з compcln.exe) - це не варіант, оскільки місця на диску не вистачає навіть для цього.
  • На машині немає vsp1clean.exe, ймовірно, тому, що SP1 вже об'єднано в систему. Насправді ніде не існує файлу з назвою * cln.exe.
  • Там немає жодного тіньових копій. Тіньові копії не активні.
  • Наскільки я можу сказати, немає точок відновлення системи активних.
  • Єдина активована роль сервера - "файловий сервер".
  • Стандартна функція "очищення" (клацання правою кнопкою миші на C: диск) пропонує мені приголомшливі 2 Мб вмісту сміття та тимчасових Інтернет-файлів.
  • Використання одного із сценаріїв "очищення winxs" для мене не є варіантом, всі вони виглядають занадто тінистими. Я не можу знайти нічого, що безпосередньо від Microsoft вирішує цю проблему.

Ви вирішили це врешті-решт?
UpTheCreek

@UpTheCreek насправді, на жаль, ні! Постачальник надав нам 5 ГБ додаткового місця на VPS, який Windows пощастило не заповнив. Але каталог Windows все ще займає 20 ГБ. Контракт закінчиться незабаром, і ми будемо перемикати хостинг-компанії.
Pekka 웃

Відповіді:


24

Каталог WinSxS не займає майже місця, про який повідомляє Explorer, оскільки він використовує жорсткі посилання на фізичні файли, а не фактичні файли. Провідник просто має проблеми з повідомленням про розмір жорстких посилань.

У цій статті про дисковий простір (на яку посилається тут http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/ ) є велике пояснення щодо каталогу WinSxS.

Що стосується фактичної проблеми використання диска - Ви можете спробувати запустити COMPCLN.EXE, щоб побачити, чи можете ви очистити старий пакет оновлень та файли гарячих виправлень, що мало би допомогло. Я також хотів би переглянути будь-які каталоги журналу, щоб побачити, чи відбувається щось інше.


Це звучить добре, проте, здається, що каталог Windows споживає> 12 Гб (це 15 ГБ місця, програми та робочі дані займають 2,5 ГБ, і місця не залишається). Compcln.exe не існує 2008 року, чи знає хтось подібну команду там?
Pekka 웃

Можливо, лише W2K8 SP2: news.softpedia.com/news/…
Christopher_G_Lewis

SP2 звучить цікаво, але сервер настільки повний, що я навіть не можу його встановити. Я попросив у постачальника трохи додаткового місця протягом декількох днів, але вони не виявилися занадто корисними в минулому. Це справді хвилює і викликає серйозні проблеми. Я відкриваю щедроту і додаю кілька знімків екрана.
Pekka 웃

Я здогадуюсь, що переробити машину та запустити оновлення - це не варіант для вас?
blueberryfields

Лише як дуже, в крайньому випадку, оскільки я вклав багато роботи, щоб все налаштувати ... Це, мабуть, вирішило б, але я би дуже радий обійти це.
Pekka 웃

18

Я був у тому ж човні, що і ти. У мене було 5 абсолютно нових віртуальних машин 2008 року, і я спостерігав за тим, як вони постійно вимагають все більше і більше дискового простору за останній рік. Дозвольте проілюструвати за допомогою windrstat.

Ось знімок екрану абсолютно нового сервера 2008 року :

alt текст Каталог winxs 3,8 ГБ

Тепер ось захоплення екрана виробничого сервера 2008 року :

alt текст 5,4 ГБ каталог winxs

Нарешті, захоплення екрану абсолютно нового сервера 2008R2 : alt текст каталог winxs 5,4 ГБ

З того, що я можу сказати, немає жодного способу урізати каталог winxs. WinSxS означає Windows Side-by-Side. У своїй спробі зменшити ефекти пекло DLL (тобто залежності) Microsoft вирішила зберегти кожну версію кожної DLL, що коли-небудь встановлена ​​у вашій системі, у каталогу winxs.

Це означає дві речі (я думаю):

  1. Хоча в winxs є кілька жорстких посилань, єдиними жорсткими посиланнями повинні бути посилання на поточні DLL-файли. Іншими словами, поточні DLL-файли, які є активними в системі, переносяться в папку winxs.

  2. Усі попередні версії DLL все ще доступні та резервні копії у каталогу winxs. Як ви бачите у всіх прикладах, якби каталог winxs насправді був "переважно жорсткими посиланнями", то це не може зайняти більше 50% вашого поточного використання диска. Тепер, навіть якби було правдою, що каталог winxs "здебільшого жорсткі посилання", використання 50% означало б весь ваш C: диск був міцно пов'язаний назад у каталог winxs.

Я все спробував. Видалення старих файлів, видалення патчів, видалення каталогів патчів "$". Все.

Нарешті я зробив усі C: розділи на всіх моїх серверах до 30 ГБ кожен. Це буде лише тимчасовим виправленням, оскільки каталог winxs буде продовжувати зростати. Хоча хороша новина, оскільки остання версія NTFS дозволяє вам розробити розділи без перезавантаження. Як зручно.

WinSxS - це не просто дратівливий каталог, це нова методологія для всіх розробників Windows. WinSxS скоро не піде. Розробники використовують WinSxS і залежно від того, щоб він був там, поки не стане доступною нова методологія архівації DLL або роздільна здатність залежності.

На кожному новому вікні 2008/7 / Vista я відчуваю, що 30 Гб: майже правильно. Досить місця (поки що) для патчів, журналів та декількох додатків.

Я не можу дочекатися, коли хтось зрозуміє все це і не почне реагувати попередні виправлення DLL-файлів з маніфестами , що стають непридатними векторами атаки / експлуатації.


1
Дякую, якщо жоден чудодійний спосіб схуднення WinSXS не виявиться, я прийму цю відповідь за те, що даю мені знати, що я не єдиний, з ким це відбувається. Шкода, що, здається, немає рішення. Оновлення до 30 Гб буде важко виправдати, оскільки це зовнішній платний хостинг. Можливо, я перейду на 2003 рік, але це теж звучить нерозумно ...
Pekka,

1
Так, я теж не надто в захваті від цього. Схоже, winxs - це не колекція жорстких посилань. Він швидше проектує жорсткі посилання на іншу частину системи, але, мабуть, є і деякі незгоди щодо цього. winvistaclub.com/f16.html ...
Джозеф Керн

Я також хотів зазначити, що у мене немає жодної ролі сервера на жодному з серверів, які я використовував для прикладів. Сервер виробництва - це сервер apache tomcat. І програма, яку я використовував для пошуку місця диска, - windirstat.info
Джозеф Керн

5
MS заявляє про 32 ГБ як мінімальну вимогу до диска: microsoft.com/windowsserver2008/en/us/system-requirements.aspx
Christopher_G_Lewis

5

На мій досвід 15 Гб не скоротять її, особливо якщо це 64-бітна машина з деякою активністю ...

Розгортання диска VPS, а потім системний розділ має бути простим без необхідності повторної установки, як би дорого це не було. Пропонування системного диска менше 60 Гб для сучасного VPS-сервера для Windows в першу чергу не здається продуманим, навіть якщо ~ 30 ГБ може скоротити його на деякий час: 7

Якщо встановити 32-бітну установку, ви видалите трохи накладних витрат, а перехід на серверне ядро ​​видалить багато. Мій 32-розрядний файловий сервер Server 2008, який працює svnserve, dfs, сервіс друку тощо, і регулярно оновлюється, становить близько 5 Гб ... в той час як мій 64-бітний сервер 2008 Standard, який обслуговує веб-програми (asp.net та php за допомогою IIS) зараз займає 30 Гб. Обидві ці показники виключають сховища даних / розділи, звичайно, лише система Windows, і обидві - лише приклади. У мене 64-бітні системні диски Server 2008, що займає що-небудь від 10 до 35 ГБ зараз.

Кожен встановлений вами інструмент, оновлення чи додаток зростатиме каталог winxs, а видалення матеріалів не завжди впливатиме на winxs, оскільки система може подумати, що ці залежності використовуються іншими інструментами.


5

Можливо, для вас це занадто пізно, і лише на основі досвіду Vista, але:

  1. Не вірте тим, хто каже, що "це переважно жорсткі посилання, тому папка не настільки велика, як здається" - це правда, але якщо у вас не вистачало місця на диску, вона була занадто великою.
  2. Єдине запропоноване «лікування» - це видалити програми, які додали розгадку до папки, але я не знаю жодного документально підтвердженого способу пошуку винуватців.
  3. Моє «лікування» після того, як не вдалося знайти задовільних відповідей, було жорстоко видалити найбільші (і небажані) папки, наприклад:

    • 6 версій „Пошук природною мовою Microsoft”, розміром ~ 300 кБ
    • Багато східних шрифтів я ніколи не використовуватиму (іноді 6 vns цих, в основному, однакових)
    • тощо.

Якщо припустити, що ви починаєте з гарної резервної копії (зображення), спробуйте і подивіться!


4

Якщо це можливо, ви можете спробувати перемістити WinSXS на інший розділ як вирішення. Наскільки мені відомо, немає жодного способу позбутися вмісту WinSXS. Ця мила маленька річ знаходиться в самому серці операцій Vista / Win2008, тому ... Я нічого не чула нічого кращого, як перенести її на інший розділ.

Ось посилання на блог із описом того, як це зробити: Клацніть

Я б запропонував вам зробити повне резервне копіювання (ще краще: зображення) всього вашого розділу C: перед тим, як спробувати процедуру. Зауважте, що я спробував це лише на Vista, а не на сервері Win2008.


Гарна ідея, але в моєму випадку (це VPS без альтернативного сховища), на жаль, це не варіант.
Pekka 웃

--- і створити зображення не так просто з тієї ж причини - інакше я б спробував запустити його на власній машині для подальшого вивчення.
Pekka 웃

3

Якщо головним винуватцем є WindowsUpdate, я б сказав, що вашою єдиною альтернативою придбанню більше місця або операцій із системними файлами є обмеження зростання, спричинене оновленнями тривожних оновлень Microsoft.

Оскільки ви в першу чергу використовуєте платформу додатків, що не належать Microsoft, ви, ймовірно, можете обійтися без натискання на 90-95% "імпортерних" оновлень.

Таким чином, те, що ви можете зробити, це відключити автоматичне оновлення, а потім бути ДУЖЕ вибірковою щодо того, які "важливі" оновлення потрібно застосувати. Застосовуйте лише ті, які виправляють вразливі місця, які Прямо порушують ваш план безпеки. Більшість "важливих" оновлень, ймовірно, не стосуються вашого сценарію безпеки, і якщо вони є, ви, можливо, можете змінити свій план безпеки, щоб обійтися без них (наприклад, не використовувати IE на сервері, використовувати альтернативні файлові послуги, посилити мережеву безпеку) .


3

Якщо WinDirStat і сама ОС (просто шукаємо під Моїм комп’ютером) повідомляють про таку ж кількість використовуваного простору, це не має значення, якщо її неправильно враховують розміри, як жорсткі посилання. Якщо ОС думає, що вам не вистачає місця - ВИ НЕ МІСЦЕ.

У мене це питання на Storage Server 2008 і DC (Server 2008). Жодна інша програма, окрім оновлень Windows, не була встановлена ​​на постійному струмі, обидва сервери витрачають 15 ГБ місця під WinSXS. Сервер зберігання був попередньо встановлений HP з 40 Гб на C:, тому я також страждаю від цієї проблеми. До 5 Гб вільного місця.

Це було виправлено в Windows 8 / Server 2013 за допомогою DISM для очищення замінених оновлень (dism.exe / онлайн / очищення-зображення / startcomponentcleanup), тому чітко це питання, яке вони визнали, на жаль, не мають іншого виправлення, ніж оновити для тих, хто застряг із 2008 рік.


3

У Windows Server 2008 R2 ви можете використовувати DISM для очищення WinSxS, звичайно, ви не зможете відмовляти оновлення після цього. Ось пояснення: http://www.sqlskills.com/blogs/glenn/how-to-reclaim-disk-space-in-your-windowswinsxs-directory-on-windows-server-2008-r2-sp1/

Підсумовуючи це, вам потрібно виконати таку команду як адміністратор:

DISM.exe /online /Cleanup-Image /spsuperseded

Я знаю, що це може не бути відповідним рішенням для вас, оскільки у вас є Windows Server 2008 (мабуть, не R2), але я знайшов це питання, шукаючи рішення для R2, ​​щоб воно могло бути корисним для деяких людей.


це видаляє лише попередні файли sp1, а не файли з виправлень, які надійшли пізніше.
Хуберт Каріо

1

Пара пропозицій:

  • Де ваш файл своп?

  • Установіть тестову машину з тим же програмним забезпеченням, щоб перевірити, чи можете ви повторити проблему. Це, безумовно, не нормально, і єдине, що я можу придумати, - це те, що щось у цій коробці постійно модифікує DLL (або щось подібне), і тому Windows постійно робить резервні копії.

15GB - це дуже низька сторона для встановлення Windows 2008 - мій стандартний C: накопичувач для Windows 2008 складає 60 Гб.


15 Гб - це розмір пакета провайдера віртуального хостингу, і кожне розширення (ми розпочали з 10 ГБ) дуже дороге. Ось чому я не можу переміщувати файл swap ніде більше.
Pekka 웃

О, я забув: З тієї ж причини повторити машину зробити не так просто. Це буде останньою інстанцією, якщо нічого іншого не вийде.
Pekka 웃

Тож змініть провайдера.
TomTom

1

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

Знайшов цю статтю, але ніколи не пробував її. Схоже, існує спосіб переміщення папки winxs. якщо хто-небудь може спробувати це, будь ласка, пройдіться через мене і дайте мені знати


Це посилання з відповіді imagodei.
Cees Timmerman

1

Системні вимоги, надані Microsoft для Server 2008, є "Місце на диску: Мінімум 32 Гбіт або більше".

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

Чому, на вашу думку, він може комфортно бігати на половині цього простору?


Я орендую рішення VPS від великого постачальника хостингу, який спочатку був пакетом 10 Гб із попередньо встановленим сервером 2008. Я припускаю, що вони повинні були якось передбачити це. Великі провайдери мають пакети Windows 10GB або 20GB: Див., Наприклад, bit.ly/h0AZsP . Мені сказали провайдери, що міна - це
вигаданий

Моя помилка, я пов’язаний із вимогами Server 2008 R2 SP1. Для сервера 2008 потрібно 8Gb як мінімум - microsoft.com/latam/windowsserver2008/sysreqs.mspx - але все ж рекомендує 40Gb.
TessellatingHeckler

дякую за посилання Однак може статися, що ОС була модернізована між ними - я розслідую
Pekka 웃

0

Один варіант використання - якщо це просто дешевий старий VPS, який ви використовуєте для простих речей, тоді варто включити компресію NTFS на диску або певних папках:

Це може вичавити місце з приводу. У статтях сказано, що це для XP, але це ті ж кроки, що і для Win7 / 2008:


0

Я зіткнувся з тією ж проблемою. Напевно, WinSxs частково винен ... Але я думаю, що проблема частково пов’язана з такими інструментами, як WinDirStat, що підраховує розміри файлів і з'єднання файлів однаково. З'єднання - це лише вказівник на файл, а не дублікат усіх блоків, що складають файл.

Я виявив, що VSS є більшим винуватцем цієї проблеми. Скористайтеся такими командами, щоб побачити, чи VSS споживає занадто багато вашого дискового простору, відновіть це місце або встановіть менший ліміт:

vssadmin список тіні для зберігання

vssadmin Видалити ShadowStorage / For = C: / On = C:

vssadmin Змінити розмір ShadowStorage / For = C: / On = C: / MaxSize = 20%

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.