Windows系統盤占用空間分析

来源:http://www.cnblogs.com/zhbzz2007/archive/2016/04/19/5407314.html
-Advertisement-
Play Games

磁碟分析 本機的系統盤是C盤,操作系統是Windows 7 專業版,通過磁碟屬性可以看到C盤的已用空間是69.4G。 而我們運行自己編寫的腳本(腳本程式參考附錄,統計原理:計算目錄下各個文件的大小,然後相加,即為該目錄的大小;再將各個目錄占用空間相加,即為總的占用空間),可以發現,占用空間為59G。 ...


磁碟分析

本機的系統盤是C盤,操作系統是Windows 7 專業版,通過磁碟屬性可以看到C盤的已用空間是69.4G。

而我們運行自己編寫的腳本(腳本程式參考附錄,統計原理:計算目錄下各個文件的大小,然後相加,即為該目錄的大小;再將各個目錄占用空間相加,即為總的占用空間),可以發現,占用空間為59G。

電腦的“文件夾選項”中“顯示隱藏的文件、文件夾和驅動器”選項開關也是打開的。

因此,極有可能是存在某些系統級別的隱藏文件,腳本在統計磁碟占用空間時,沒有把這些文件統計上。我們使用磁碟修複分區工具DiskGenius進行分析,發現存在hiberfil.sys和pagefile.sys兩個隱藏文件。

其中,hiberfil.sys這個文件就是系統的休眠功能所占用的磁碟空間的文件,Windows預設休眠功能是處於打開狀態的,電腦處於休眠狀態時,記憶體中的所有內容將保存到硬碟。電腦在返回打開狀態之後,關閉電腦時,打開的所有程式和文檔將全部還原到桌面,參考鏈接1

pagefile.sys這個文件是安裝過程中創建的虛擬記憶體頁面文件。如果電腦在較低的RAM下運行,並且立即需要更多的RAM,則Windows會用硬碟空間來模擬系統RAM,這就叫做虛擬記憶體,通常稱之為頁面文件,由於虛擬記憶體的設定,因此產生了pagefile.sys文件,參考鏈接2

磁碟整理

由於系統空間緊張,因此我們可以關閉休眠,從而刪除hiberfil.sys這個文件,以及修改虛擬記憶體文件pagefile.sys的存放地址,存放在其他磁碟,從而避免將pagefile.sys占用系統磁碟空間。

1.刪除hiberfil.sys

刪除hiberfil.sys文件,主要是通過關閉休眠功能來實現,參考鏈接3

在cmd視窗中敲入“powercfg -h off”命令後,即可關閉系統的休眠功能。

我們再用磁碟修複分區工具DiskGenius進行分析,發現hiberfil.sys已經不存在了。

2.修改pagefile.sys存放地址

修改pagefile.sys到其他空閑的磁碟中,參考鏈接4

單擊“開始”-->右擊“電腦”-->“屬性”-->“高級系統設置”-->“高級”>性能欄里的“設置”-->“高級”>虛擬記憶體“更改”>取消“自動管理所有驅動器的分頁文件大小”。選擇C盤,點擊“無分頁文件”,點擊“設置”,再選擇D盤,點擊“系統管理的大小”,點擊“設置”,即可。

再用磁碟修複分區工具DiskGenius進行分析,發現pagefile.sys在D盤中出現。系統重新啟動後,C盤中已經不存在pagefile.sys文件了。

通過磁碟屬性可以看到C盤的已用空間是55.5G,比之前減少的13.9G。其中hiberfil.sys大小是5.9G,pagefile.sys大小是7.9G,共13.8G,也即我們上面兩步驟已經生效,減少了系統盤的占用空間。

3.大文件分析

我們通過運行自己編寫的腳本(腳本程式參考附錄,統計原理:計算各個文件的大小,並根據文件大小排序,將前20個最大的文件輸出)。

可以發現,紅框中的文件均為log文件。
這些日誌都是提供有關離線處理故障的詳細信息的處理日誌文件,微軟官方不建議用戶自己刪除系統文件。因此這些文件,後續再處理,參考鏈接5

具體實現

統計各個目錄占用空間,並按照目錄占用空間降序輸出;統計文件占用空間,並按照文件占用空間降序輸出前20個文件。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import os

#統計指定目錄下各個文件夾的大小,方便觀察具體目錄的大小
def CountDirSize(srcDir):
    dirSizeDict = {}
    fileSizeDict = {}
    for fileList in os.listdir(srcDir):

        filePath = os.path.join(srcDir,fileList)
        if os.path.isdir(filePath):
            size = 0
            for roots,dirs,files in os.walk(filePath):
                for fileName in files:
                    fileNamePath = os.path.join(roots,fileName)
                    sizetemp = 0
                    try:
                        sizetemp = os.path.getsize(fileNamePath)
                        if sizetemp > 1024*1024:
                            fileSizeDict[fileNamePath] = sizetemp
                    except:
                        sizetemp = 0
                    size += sizetemp
            dirSizeDict[fileList] = size
    #按照從大到小的順序降序排列
    dirSizeDict = sorted(dirSizeDict.items(),key = lambda dirSizeDict:dirSizeDict[1],reverse = True)
    Sum = 0
    print "各個目錄占用空間"
    for ele in dirSizeDict:
        temp = ele[1]/1024/1024
        Sum += temp
        #以單位為M,輸出大小
        print ele[0] + ":" + str(temp) + " M"
    #以單位為G,輸出大小
    print "Total use:" + str(Sum / 1024) +" G"
    print ""

    print "前20個大文件占用空間"
    fileSizeDict = sorted(fileSizeDict.items(),key = lambda fileSizeDict:fileSizeDict[1],reverse = True)
    for ele in fileSizeDict[:20]:
        print ele[0] + ":" +str(ele[1]/1024/1024) + " M"


if __name__ == "__main__":
    srcDir = "c:\\"
    CountDirSize(srcDir)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 網頁中經常需要顯示圖片給用戶看,對網站本身來說有的圖片是從本地圖片伺服器來的,但是一旦數量多了以後,磁碟空間又是一個問題。 所以有時就希望顯示其他網站的Image,直接把其他網站的圖片顯示在我的網站上。但並不是所有的外網Image 都能直接連接過來顯示。 很多情況下網站開發人員就會遇到 403 fo ...
  • 升級前準備: 配置好新的hadoop-2.7.2到各個集群伺服器上 配置好新的環境變數備用 開始升級: 1.停止hive、hbase、zookeeper等相關服務 2.檢查文件(如果文件太多太費時間可以不做) 檢查元數據塊(過濾所有以小圓點開始的行): 3.停止hadoop集群 4.修改環境變數 s ...
  • • 關於PXE無盤工作站系統的簡介 PXE無盤工作站系統是指由一臺或多台“系統伺服器”和多台“PXE客戶端(無盤工作站)”通過 交換機 相連組成的區域網系統。 (圖1:無盤工作站系統部署拓撲圖) • 系統伺服器:通過DHCP+TFTP+NFS服務向無盤工作站提供系統支持 • PXE客戶端:PXE客戶 ...
  • 簡介: Pptpd 快速搭建 VPN 伺服器。 閑話不多說,動手 下載地址: http://hivelocity.dl.sourceforge.net/project/poptop/pptpd/pptpd-1.4.0/pptpd-1.4.0.tar.gz 1、安裝 2、配置 ## 其餘沒有標記的全為 ...
  • Qt Creator 你必須要掌握的快捷操作 多使用快捷鍵能顯著提高工作效率,儘可能減少鍵盤,滑鼠之間切換所浪費的時間。我這裡列出個人認為非常重要必須掌握的 Qt Creator 快捷鍵。看你知道幾個? Qt Creator 你必須要掌握的快捷操作 多使用快捷鍵能顯著提高工作效率,儘可能減少鍵盤,鼠 ...
  • 一Linux伺服器突然發送不出郵件,檢查了很多地方都沒有發現異常,檢查/var/log/maillog發現如下具體信息: Apr 12 00:36:04 mylinux sendmail[4685]: u3BGa4Is004685: Authentication-Warning: mylinux.x... ...
  • DNS伺服器介紹 DNS是電腦功能變數名稱系統(Domain Name System 或Domain Name Service) 的縮寫,它是由功能變數名稱解析器和功能變數名稱伺服器組成的。功能變數名稱伺服器是指保存有該網路中所有主機的功能變數名稱和對應IP地址,並具有將功能變數名稱轉換為IP地址功能的伺服器。其中功能變數名稱必須對應一個IP地址,一個... ...
  • 今天學到了很有意思的三個命令:怎麼有意思 快看下圖啦! 這是Ubuntu系統下的三個命令,跟echo本質一樣,但是輸出的字元是圖形的 ,很可愛! 以下是安裝命令: sudo apt-get update;sudo apt-get install sysvbanner sudo apt-get upd ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...