Windows 2008:WinSXSディレクトリが制御不能に成長し、サーバーをブロックします


62

クライアント用にWindows 2008 Serverで(リモートホスト)仮想サーバーを実行しています。最初は、10 GBのスペースがありました。数週間の間に-Webベースのicketシステムを使用した通常の作業以外はマシン上でも行われなかった-、Windowsは悪名高い "winsxs"ディレクトリをいっぱいにし始め、その結果、ハードディスクはいっぱいになり、さらに5 GBを注文する必要がありました。今、3週間後、これらの5 GBはwinsxsによっても消費され、再びマシンで作業することはできません。Winsxsは現在8 GBで、残りのWindowsディレクトリは5 GBです。

同じ問題を説明するさまざまなソースをウェブ上で見つけました。どうやら、Windows 2008は、通常の更新プロセスでダウンロードするすべてのDLLのすべての言語バージョンを保存しているようです。そこにあるものを削除するだけでは、重要なコンポーネントが含まれているため致命的に危険であると言われます。不要になったファイルを特定して削除するためのツールや手順はありません。

私に何ができる?これは正常な動作ですか?また、そうであれば、同様にスペースが制限されている他のサーバーはどのように管理しますか?オフまたはオンにできるものはありますか?

事前定義されたサーバーロールのうち、「ファイルサービス」(または英語で呼ばれるものは何でも、スイスサーバー)のみがアクティブになります。さらに、Apache、mySQL、およびSubversionをインストールしました。自動更新が有効になります。

編集:問題は解決しません。

注:WinSXSディレクトリは主にシンボリックリンクで構成されており、ユーザーはそのサイズを見てパニックになることがよくあります。それでも、15 GBのスペースのうち、1.5 MBがプログラムとデータで使用されており、何も残っていません。いまいましいマシンにもアクセスできてうれしいです。*私はすでに1 GBのデータを解放しており、24時間以内にWindows Windowsがデータを埋めました。ホラー映画のようです。私が試したもの:

  • comp2n.exeに付属するSP2をインストールすることは、ディスクスペースが十分ではないため、オプションではありません。
  • マシン上にvsp1clean.exeはありません。おそらくSP1が既にシステムにマージされているためです。実際、* cln.exeという名前のファイルはどこにも存在しません。
  • シャドウコピーはありません。シャドウコピーはアクティブではありません。
  • 私が知る限り、アクティブなシステム復元ポイントはありません。
  • アクティブ化されるサーバーの役割は「ファイルサーバー」のみです。
  • 標準の「クリーンアップ」機能(C:ドライブを右クリック)は、ごみ箱の中身とインターネットの一時ファイルに2 MBもの困惑させてくれます。
  • 「クリーンアップwinsxs」スクリプトの1つを使用することは、私にとって選択肢ではありません。この問題に対処するマイクロソフトから直接何かを見つけることはできません。

最後にこれを解決しましたか?
UpTheCreek

@UpTheCreekは実際、残念ながらいいえ!プロバイダーは、VPSに5 GBの追加スペースを許可しましたが、幸運なことにWindowsはそれを満たしませんでした。ただし、Windowsディレクトリはまだ20 GBを占有しています。契約はまもなく終了し、ホスティング会社を切り替えます。
PekkaはGoFundMonicaを

回答:


24

WinSxSディレクトリは、実際のファイルではなく物理ファイルへのハードリンクを使用するため、Explorerによって報告されるスペースをほとんど占有しません。Explorerには、ハードリンクのサイズを報告するだけの問題があります。

Disk Spaceに関するこの記事(http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/を参照 )には、WinSxSディレクトリに関する優れた説明があります。

実際のディスク使用量の問題について-COMPCLN.EXEを実行して、古いサービスパックとホットフィックスファイルをクリーンアップできるかどうかを確認できます。これは非常に役立ちます。また、ロギングディレクトリを調べて、他に何かが起こっているかどうかを確認します。


これは良いように聞こえますが、実際にはWindowsディレクトリは12 GBを超えているようです(15 GBのスペースで、プログラムと作業データは2.5 GBを占有し、残りのスペースはありません)。Compcln.exeは2008年には存在しませんが、同様のコマンドを知っている人はいますか?
PekkaはGoFundMonicaを2009年

おそらくW2K8 SP2のみ: news.softpedia.com/news/...
Christopher_G_Lewis

SP2はおもしろそうですが、サーバーがいっぱいなので、インストールすらできません。私は数日間、追加のスペースをプロバイダーに要求しましたが、過去にあまり役に立たなかったことが証明されています。これは本当に厄介であり、深刻な問題を引き起こしています。バウンティを開き、スクリーンショットを追加します。
PekkaはGoFundMonicaを2009年

マシンのイメージを再作成し、更新を実行することは選択肢ではないと思いますか?
ブルーベリー

すべてをセットアップするために多くの作業を投資したため、非常に最後の手段としてのみ...それはおそらくそれを解決するでしょうが、それを回避することは非常に幸せです。
PekkaはGoFundMonicaを2009年

18

私はあなたと同じ船に乗っていました。私は5つの真新しい2008 VMを所有しており、昨年よりどんどん多くのディスク容量が必要になるのを見てきました。windrstatで説明しましょう。

以下は、新しい2008サーバーのスクリーンキャプチャです。

代替テキスト 3.8 GB winsxsディレクトリ

次に、実稼働2008サーバーのスクリーンキャプチャを示します

代替テキスト 5.4GB winsxsディレクトリ

最後に、新しい2008R2サーバーのスクリーンキャプチャ: 代替テキスト 5.4GB winsxsディレクトリ

私の知る限り、winsxsディレクトリを切り捨てる方法はありません。WinSxSは、Windows Side-by-Sideの略です。DLLの影響(依存関係)を軽減するために、MicrosoftはシステムにインストールされたすべてのDLLのすべてのバージョンをwinsxsディレクトリに保持することを決定しました。

これは2つのことを意味します(私は思う):

  1. winsxsにはハードリンクがいくつかありますが、ハードリンクは現在のDLLのハードリンクのみである必要があります。つまり、システムでアクティブな現在のDLLは、このwinsxsフォルダーにハードリンクされます。

  2. DLLの以前のバージョンはすべて引き続き使用でき、winsxsディレクトリにバックアップされます。すべての例でわかるように、winsxsディレクトリが実際に「主にハードリンク」である場合、現在のディスク使用量の50%以上を占めることはできません。これで、winsxsディレクトリが「ほぼハードリンク」であることが真実であったとしても、50%の使用率は、C:ドライブ全体がwinsxsディレクトリにハードリンクされることを意味します。

私はすべてを試しました。古いファイルの削除、パッチのアンインストール、「$」パッチディレクトリの削除。すべて。

最終的に、すべてのサーバー上のすべてのC:パーティションをそれぞれ30GBに拡張しました。winsxsディレクトリは成長し続けるため、これは一時的な修正にすぎません。ただし、NTFSの最新バージョンでは、再起動せずにパーティションを拡大できるため、朗報です。なんて都合のいい。

WinSxSは単なる迷惑なディレクトリではなく、すべてのWindows開発者にとって新しい方法論です。WinSxSはすぐになくなることはありません。開発者はWinSxSを使用しており、DLLアーカイブまたは依存関係の解決の新しい方法論が利用可能になるまで、それに依存します。

すべての新しいWindows 2008/7 / Vistaボックスでは、30GBのC:がほぼ正しいと感じています。パッチ、ログ、およびいくつかのアプリケーションのための十分なスペース(今のところ)。

誰かがこれをすべて把握し、攻撃/悪用のベクターとなる不正なマニフェストを使用してパッチ適用前のDLLの再アクティブ化を開始するまで待ちきれません。


1
おかげで、WinSXSをスリム化する奇跡的な方法が見つからない場合、これが起こっているのは私だけではないことを私に知らせてこの答えを受け入れます。残念なことに、解決策がないようです。30GBへのアップグレードは、外部の有料ホスティングであるため、正当化するのが困難です。たぶん私は、2003年にダウングレードするだろう-しかし、その音は愚かにも...
ペッカはGoFundMonicaサポートして

1
ええ、私もこれについてあまりわくわくしていません。winsxsはハードリンクのコレクションではないようです。むしろ、ハードリンクをシステムの残りの部分に投影しますが、それについても意見の相違があるようです。winvistaclub.com/f16.html ...
ジョセフ・カーン

また、例で使用したサーバーのいずれでもサーバーの役割が有効になっていないことにも言及したいと思います。実稼働サーバーはApache Tomcatサーバーです。ドライブスペースを見つけるために使用したプログラムは、windirstat.info-
ジョセフカーン

5
MSは、最小ディスク要件として32 GBを記載しています:microsoft.com/windowsserver2008/en/us/system-requirements.aspx
Christopher_G_Lewis

5

私の経験では、15 GBはそれを削減しません。特に、何らかのアクティビティがある64ビットマシンの場合は...

VPSディスクを拡張してからシステムパーティションを拡張することは、再インストールすることなく簡単に行うことができますが、費用はかかります。最新のWindows Server VPSに60GB未満のシステムディスクを提供することは、最初は30GBまでのディスクでしばらくカットできたとしても、最初は考え抜かれていないようです:7

32ビットのインストールに行くとオーバーヘッドが少し減り、サーバーコアに行くとかなり減ります。svnserve、dfs、プリントサービングなどを実行し、定期的に更新される32ビットServer 2008 Coreファイルサーバーは約5 GBです。一方、Webアプリケーション(IISを使用するasp.netおよびphp)にサービスを提供する64ビットServer 2008 Standard現在30 GBを占有します。これらの両方のメトリックは、もちろんデータストア/パーティション、Windowsシステムのみを除外し、両方とも、現在10〜35 GBを占有する64ビットServer 2008システムディスクを持っている単なる例です。

インストールするすべてのツール、アップグレード、またはアプリケーションはwinsxsディレクトリを拡大し、システムがこれらの依存関係が他のツールによって使用されているとシステムが考えるため、winsxsにアンインストールすることは必ずしも効果がありません。


5

これはおそらくあなたにとって遅すぎ、Vistaの経験にのみ基づいていますが、

  1. 「ほとんどがハードリンクであるため、フォルダーが表示されるほど大きくない」と言う人を信じないでください-これは事実ですが、ディスクスペースが不足すると、大きすぎます。
  2. これまでに提案された唯一の「解決策」は、フォルダーに肥大化を追加したアプリケーションを削除することですが、犯人を見つけるための文書化された方法はありません。
  3. 満足のいく答えを見つけられなかった後の私の「治癒」は、最大の(そして望ましくない)フォルダーを残酷に削除することでした。例えば:

    • 「Microsoft自然言語検索」の6つのバージョン、それぞれ約300 KB
    • 私が使用することのない多くのオリエンタルフォント(これらの6 vns、ほとんど同じ)
    • などなど

適切なバックアップ(イメージ)から開始すると仮定して、試してみてください!


4

可能であれば、回避策としてWinSXSを別のパーティションに移動してみてください。私の知る限り、WinSXSのコンテンツを削除する方法はありません。このかわいい小さなものはVista / Win2008の操作の中心にあるので、...別のパーティションに移動することについてこれ以上良いことは聞いていません。

方法を説明するブログへのリンクは次のとおりです。クリック

手順を試す前に、C:パーティション全体の完全バックアップ(さらに良い方法:イメージ)を行うことをお勧めします。Win2008 ServerではなくVistaでのみこれを試したことに注意してください。


良い考えですが、私の場合(これは代替ストレージのないVPSです)、残念ながらオプションではありません。
PekkaはGoFundMonicaを2009年

---そして、同じ理由でイメージを作成するのはそれほど簡単ではありません。
PekkaはGoFundMonicaを2009年

3

主な原因がWindowsUpdateである場合、スペースの追加購入またはシステムファイルの手術を行う唯一の選択肢は、Microsoftのトリガーハッピーアップデートによる成長を制限することです。

主にMicrosoft以外のアプリケーションプラットフォームを使用しているため、おそらく「重要な」更新プログラムの90〜95%がプッシュダウンされることなく実行できます。

したがって、自動更新を無効にしてから、適用する「重要な」更新を非常に慎重に選択することができます。セキュリティプランを直接侵害する脆弱性を修正するもののみを適用してください。ほとんどの「重要な」更新はおそらくセキュリティシナリオには適用されず、もしそれらがなければセキュリティプランを修正してそれらなしで行うことができます(たとえば、サーバーでIEを使用しない、代替ファイルサービスを使用する、ネットワークセキュリティを強化する) 。


3

WinDirStatとOS自体([マイコンピュータ]の下に表示されます)が同じサイズの使用領域を報告している場合、サイズをハードリンクとして誤ってカウントしていると無関係です。OSがスペース不足だと判断した場合、スペース不足です。

Storage Server 2008とDC(Server 2008)でこの問題があります。DCにはWindowsアップデート以外のプログラムはインストールされていません。両方のサーバーがWinSXSの下で15GBのスペースを消費しています。Storage ServerはHPによってC:に40GBがプリインストールされているため、この問題にも悩まされています。最小5GBの空き容量。

これはWindows 8 / Server 2013で、DISMを使用して置き換えられた更新(dism.exe / online / cleanup-image / 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のソリューションを探しているときにこの質問を見つけたので、一部の人に役立つかもしれません。


これにより、pre sp1ファイルのみが削除され、後で提供される修正プログラムのファイルは削除されません。
ヒューバートカリオ

1

いくつかの提案:

  • スワップファイルはどこにありますか?

  • 同じソフトウェアでテストマシンをセットアップして、問題を再現できるかどうかを確認します。これは間違いなく正常ではなく、私が考えることができる唯一のことは、そのボックス上の何かがDLL(またはそのようなもの)を絶えず変更しているため、Windowsが絶えずそれのバックアップを作成しているということです。

Windows 2008のインストールでは、15GBが非常に低くなります。Windows2008ビルド用の標準C:ドライブは60GBです。


15GBは仮想ホスティングプロバイダーのパッケージのサイズであり、すべての拡張機能(10GBから開始)は非常に高価です。それが、スワップファイルを他の場所に移動できない理由でもあります。
PekkaはGoFundMonicaを2009年

ああ、忘れました:同じ理由で、マシンを複製するのはそれほど簡単ではありません。他に機能しない限り、最後の手段になります。
PekkaはGoFundMonicaを2009年

プロバイダーを変更します。
トムトム


1

Microsoftが提供するServer 2008のシステム要件は、「ディスク容量:最小32Gb以上」です。

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

なぜそのスペースの半分で快適に実行できると思いますか?


元々2008 Serverがプリインストールされた10GBパッケージであった大手ホスティングプロバイダーからVPSソリューションをレンタルしています。私は彼らが何とかこれを提供したに違いないと思います。ビッグプロバイダーには、10GBまたは20GBのWindowsパッケージがあります:bit.ly/h0AZsPなどを参照してください。私は鉱山がフリークケースであるプロバイダによって告げています
ペッカはGoFundMonicaサポート

私の間違いは、Server 2008 R2 SP1の要件にリンクしています。- Server 2008には、最低でも8GBのを必要としmicrosoft.com/latam/windowsserver2008/sysreqs.mspx -まだな40Gbを推奨しています。
TessellatingHeckler

リンクをありがとう。ただし、その間にOSがアップグレードされた可能性があります
します-PekkaはGoFundMonicaをサポートします11年

0

使用する1つのオプション-単純なものに使用する安価な古いVPSの場合、ディスクまたは特定のフォルダーでNTFS圧縮を有効にする価値があります。

これにより、ドライブの一部のスペースが絞られる場合があります。記事はXP向けだと言っていますが、Win7 / 2008でも同じ手順です。


0

同じ問題に遭遇しました。確かにWinSxsのせいかもしれません...しかし、問題の一部は、WinDirStatのようなツールがファイルのサイズとファイルへのジャンクションを同じ方法でカウントしているためだと思います。ジャンクションはファイルへのポインタにすぎず、ファイルを構成するすべてのブロックの複製ではありません。

VSSがこの問題の大きな原因であることを発見しました。次のコマンドを使用して、VSSがディスク領域を過剰に消費していないかどうかを確認し、その領域を再利用するか、より小さな制限を設定します。

vssadminリストshadowstorage

vssadmin ShadowStorageの削除/ For = C:/ On = C:

vssadmin ShadowStorageのサイズ変更/ For = C:/ On = C:/ MaxSize = 20%

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.