Вопрос: Windows 2008: каталог WinSXS неудержимо растет, блокируя сервер


Я запускаю (удаленно размещенный) виртуальный сервер с Windows 2008 Server для клиента. Первоначально он имел 10 ГБ пространства. В течение нескольких недель - во время которых ничего было сделано на машине, за исключением обычной работы с использованием веб-киктевой системы - Windows начала заполнять свой печально известный каталог «winsxs» настолько, что в конце концов, жесткий диск был заполнен, и нам пришлось заказать еще 5 ГБ. Теперь, через три недели, эти 5 ГБ были также потреблены winsxs, и снова я не могу работать на машине. Winsxs теперь на 8 ГБ, остальные в каталоге Windows 5 ГБ.

Я нашел различные источники в Интернете, которые описывают одну и ту же проблему. По-видимому, Windows 2008 хранит все языковые версии для всех DLL-файлов, которые она загружает в обычном процессе обновления. Просто удаление вещей описано как смертельно опасное, так как оно содержит жизненно важные компоненты. Я не нашел никаких инструментов или инструкций для идентификации и удаления тех файлов, которые больше не нужны.

Что я могу сделать? Является ли это обычным поведением и, если это так, как управляют другими серверами с одинаково ограниченным пространством? Есть ли что-то, что я могу отключить или продолжить?

Из предопределенных ролей сервера активируется только «Файловые службы» (или что-то, что называется на английском, это швейцарский сервер). Кроме того, я установил Apache, mySQL и Subversion. Автоматические обновления активируются.

Изменить: проблема сохраняется.

Примечание. Я знаю, что каталог WinSXS состоит в основном из символических ссылок и что пользователи часто паникуют, глядя на его размер. Тем не менее, из 15 ГБ пространства у меня есть 1,5 МБ, используемые программами и данными, и ничего оставил. Я рад, что могу даже получить доступ к этой проклятой машине. * Я уже выпустил 1 ГБ данных, которые были заполнены окнами Windows в течение 24 часов. Это как в фильме ужасов. То, что я пробовал:

  • Установка SP2 (который поставляется вместе с compcln.exe) не является вариантом, поскольку для этого недостаточно места на диске.
  • На машине нет vsp1clean.exe, возможно, потому что SP1 уже был объединен с системой. На самом деле файл в файле * cln.exe отсутствует.
  • Есть нет теневые копии. Теневые копии неактивны.
  • Насколько я могу судить, нет активных точек восстановления системы.
  • Единственная роль сервера - «файловый сервер».
  • Стандартная функция «очистки» (щелчок правой кнопкой мыши на диске C:) предлагает мне непонятные 2 МБ содержимого мусора и временные интернет-файлы.
  • Использование одного из скриптов «cleanup winsxs» для меня не является вариантом, все они выглядят слишком теневыми. Я не могу найти что-либо прямо из Microsoft, рассматривая эту проблему.

60
2017-10-29 12:54


Источник


Вы разрешили это в конце? - UpTheCreek
@UpTheCreek на самом деле, к сожалению, нет! Поставщик предоставил нам 5 ГБ дополнительного места на VPS, который Windows повезло не заполнил. Но каталог Windows по-прежнему занимает 20 ГБ. Контракт скоро закончится, и мы будем переводить хостинговые компании. - Pekka 웃


Ответы:


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

Эта статья о Дисковое пространство (здесь http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/) имеет большое объяснение в каталоге WinSxS.

Что касается вашей фактической проблемы использования диска - вы можете попробовать запустить COMPCLN.EXE, чтобы узнать, можете ли вы очистить любой старый пакет обновления и файлы исправлений, что должно помочь совсем немного. Я также посмотрел бы на любые журналы регистрации, чтобы увидеть, что происходит что-то еще.


22
2017-10-29 14:39



Это звучит неплохо, однако каталог Windows, по-видимому, потребляет> 12 ГБ (это 15 ГБ пространства, программы и рабочие данные занимают 2,5 ГБ, и нет свободного места). Compcln.exe не существует в 2008 году, знает ли кто-нибудь подобную команду? - Pekka 웃
Возможно, только W2K8 SP2: news.softpedia.com/news/... - Christopher_G_Lewis
SP2 звучит интересно, но сервер настолько насыщен, что я даже не могу его установить. Я попросил у провайдера некоторое дополнительное пространство в течение нескольких дней, но в прошлом они не были слишком полезны. Это действительно беспокоит и вызывает серьезные проблемы. Я открываю щедрость и добавляю несколько снимков экрана. - Pekka 웃
Я предполагаю, что переименование машины и запуск обновлений - это не вариант для вас? - blueberryfields
Только как самое, самое последнее средство, поскольку я вложил много работы, чтобы все подправить ... Это, вероятно, решит его, но я был бы очень рад обойти его. - Pekka 웃


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

Вот экранный захват новый сервер 2008 года:

alt text 3,8 GB winsxs directory

Теперь вот экранный захват сервер производства 2008:

alt text 5.4 ГБ каталог winsxs

Наконец, захват экрана новый сервер 2008R2: alt text 5.4 ГБ каталог winsxs

Из того, что я могу сказать, нет способа обрезать каталог winsxs. WinSxS означает Windows Side-by-Side. В своей попытке уменьшить эффекты DLL-ада (то есть зависимостей) Microsoft решила сохранить каждую версию каждой DLL, когда-либо установленной в вашей системе, в каталоге winsxs.

Это означает две вещи (я думаю):

  1. Хотя в winsxs есть некоторые жесткие ссылки, единственными жесткими ссылками должны быть ссылки на текущие DLL. Другими словами, текущие DLL-файлы, которые активны в системе, жестко привязаны к этой папке winsxs.

  2. Все предыдущие версии DLL по-прежнему доступны и созданы в каталоге winsxs. Как вы можете видеть во всех примерах, если каталог winsxs действительно был «главным образом жесткими ссылками», он не мог бы использовать более 50% вашего текущего использования диска. Теперь, даже если это правда, что каталог winsxs является «главным образом hardlinks», использование на 50% означает, что весь ваш диск C: был жестко привязан к директории winsxs.

Я все пробовал. Удаление старых файлов, удаление патчей, удаление патчей «$». Все.

Наконец, я все увеличил все разделы C: на всех моих серверах до 30 ГБ каждый. Это будет только временное исправление, так как каталог winsxs будет продолжать расти. Хорошая новость, так как последняя версия NTFS позволяет вам увеличивать свои разделы без перезагрузки. Как удобно.

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

В каждом новом окне Windows / 7 / Vista я чувствую, что 30 ГБ C: почти прав. Достаточно места (на данный момент) для патчей, журналов и нескольких приложений. 

Я не могу дождаться, пока кто-то все это выдумает, и начнет реактивировать DLL-файлы перед установкой изгои-манифесты, которые становятся атаками / эксплоитами.


17
2017-11-13 16:10



Спасибо, если не будет чудесного способа похудения WinSXS, я приму этот ответ, чтобы сообщить мне, что я не единственный, с кем это происходит. Слишком плохо, похоже, не решение. Обновление до 30 ГБ будет трудно оправдать, так как это внешний платный хостинг. Может быть, я понижусь до 2003 года, но это звучит глупо ... - Pekka 웃
Да, я тоже не слишком взволнован. Похоже, что winsxs - это не коллекция жестких ссылок. Скорее это проекты hardlinks в остальную часть системы, но, похоже, есть некоторые разногласия по этому поводу. winvistaclub.com/f16.html ... - Joseph Kern
Я также хотел упомянуть, что у меня нет роли сервера на любом из серверов, которые я использовал для примеров. Сервер производства - сервер Tomcat Apache. И программа, которую я использовал для определения места на диске, - это windirstat.info - Joseph Kern
MS заявляет 32 ГБ как минимальное требование к диску: microsoft.com/windowsserver2008/en/us/system-requirements.aspx - Christopher_G_Lewis


15 ГБ не сократит его по моему опыту, особенно если это 64-разрядная машина с некоторой активностью ...

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

Переход на 32-разрядную установку позволит удалить немного накладных расходов, и для Server Core удалит много. Мой 32-разрядный серверный сервер Server 2008 Core, который запускает svnserve, dfs, службу печати и т. Д. И регулярно обновляется, составляет около 5 ГБ ... в то время как мой 64-битный серверный 2008 Standard Standard, который обслуживает веб-приложения (asp.net и php с использованием IIS) сейчас занимает 30 ГБ. Обе эти метрики, конечно, исключают хранилища / разделы данных, а только систему Windows, и оба являются примерами. У меня есть 64-битные системные диски Server 2008, которые сейчас занимают от 10 до 35 ГБ.

Каждый инструмент, обновление или приложение, которое вы устанавливаете, будет увеличивать каталог winsxs, и удаление файлов не всегда будет иметь какое-то влияние на winsx, поскольку система может полагать, что эти зависимости используются другими инструментами.


5
2017-11-15 00:24





Это, вероятно, слишком поздно для вас, и только на основе опыта Vista, но:

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

    • 6 версий «поиска на естественном языке Microsoft», ~ 300 КБ каждый
    • Множество восточных шрифтов я никогда не буду использовать (иногда 6 внс этих, в основном одинаковых)
    • etc и т. д.

Предполагая, что вы начинаете с хорошей резервной копии (изображения), попробуйте и посмотрите!


5
2018-03-27 16:51





Если возможно, вы можете попробовать переместить WinSXS на другой раздел в качестве обходного пути. Насколько я знаю, нет никакого способа избавиться от содержимого WinSXS. Эта милая маленькая вещь находится в основе работы Vista / Win2008, поэтому ... Я не слышал ничего лучшего, как переместить ее в другой раздел.

Вот ссылка на блог, описывающий, как это сделать: Нажмите

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


4
2017-11-13 08:26



Хорошая идея, но в моем случае (это VPS без альтернативного хранилища), к сожалению, это не вариант. - Pekka 웃
--- и сделать изображение не так просто по той же причине - иначе я бы сделал один и попробовал запустить его на собственной машине для дальнейшего изучения. - Pekka 웃


Если основным виновником является WindowsUpdate, то я бы сказал, что ваша единственная альтернатива покупке большего пространства или выполнению операций с системным файлом - это ограничение роста, вызванного обновляемыми триггерными обновлениями Microsoft.

Поскольку вы в первую очередь используете платформу приложений, отличную от Microsoft, вы, вероятно, можете обойтись без 90-95% «важных» обновлений, которые будут сдвинуты вниз.

Таким образом, что вы можете сделать, это отключить автоматические обновления, а затем быть ОЧЕНЬ выборочным, о каких «важных» обновлениях применять. Используйте только те уязвимые уязвимости, которые прямо нарушают ваш план безопасности. Большинство «важных» обновлений, вероятно, не относятся к вашему сценарию безопасности, и если это возможно, вы, вероятно, можете изменить свой план безопасности, чтобы обойтись без них (например, не используйте IE на сервере, используйте альтернативные файловые службы, ужесточите сетевую безопасность) ,


3
2017-12-20 06:30





Если WinDirStat и сама ОС (просто смотри в разделе «Мой компьютер») сообщают о том же количестве используемого пространства, это не имеет значения, если он будет определять размеры как жесткие ссылки. Если ОС думает, что вам не хватает места - ВЫ ВЫХОДИТЕ В ПРОСТРАНСТВЕ.

У меня эта проблема на сервере хранения 2008 и DC (Server 2008). Никаких других программ, кроме обновлений Windows, не было установлено на DC, оба сервера потребляют 15 ГБ пространства под WinSXS. Сервер хранения был предварительно установлен HP с 40 ГБ на C :, поэтому я также страдаю от этой проблемы. До 5 ГБ свободного места.

Это было исправлено в Windows 8 / Server 2013 с помощью DISM для очистки замененных обновлений (dism.exe / online / cleanup-image / startcomponentcleanup), так что это проблема, которую они признали, к сожалению, без каких-либо исправлений, кроме как для обновления для тех, 2008.


3
2018-04-11 02:47





В 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, ​​поэтому он может быть полезен для некоторых людей.


3
2017-07-14 08:24



это удаляет только файлы pre sp1, а не файлы из исправлений, которые появились позже. - Hubert Kario


Несколько предложений:

  • Где ваш файл подкачки?

  • Настройте тестовую машину с тем же программным обеспечением, чтобы увидеть, можете ли вы воспроизвести проблему. Это определенно не нормально, и единственное, о чем я могу думать, это то, что что-то в этом ящике постоянно модифицирует DLL (или что-то в этом роде), и поэтому Windows постоянно делает резервные копии.

15 ГБ очень сильно зависит от установки Windows 2008 - мой стандартный диск C: для Windows 2008 составляет 60 ГБ.


1
2017-11-13 12:39



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