Tại sao Disk Cleanup lại mất nhiều thời gian và cpu như vậy?


29

Chỉ là một câu hỏi tò mò. Disk Cleanup đã sử dụng 100% một trong số các lõi của tôi trong một thời gian và vẫn còn tiếp tục. Có vẻ như đang dành nhiều thời gian đặc biệt là cho Windows Update Cleanup.

Không thể hiểu tại sao xóa các tập tin nên là một hoạt động chuyên sâu như vậy. Đặc biệt là vì nó đã dành khá nhiều thời gian để tính toán những gì nó có thể xóa.

Tại sao Disk Cleanup lại mất nhiều thời gian và cpu như vậy? Nó làm gì mà rất chuyên sâu?

Hai trong số bốn lõi đạt tối đa

Câu trả lời:


20

Windows nén thư mục WinSxS bằng cách xóa các tệp nén quảng cáo thay thế không thể gỡ cài đặt và không được sử dụng thành các khác biệt. Điều này tốn rất nhiều năng lượng của CPU và đó là lý do tại sao bạn thấy mức sử dụng CPU cao.

Bạn có thể phân tích việc sử dụng CPU với xperf / WPA để xác minh điều này.


Không phải nó cũng tính toán không gian được lưu khi nén các tệp cũ nhất (những tệp không được mở gần đây) sao?
Justin Goldberg

Video hay! Chắc chắn sẽ kiểm tra công cụ đó: D
Svish

@Svish bạn đã xác minh điều này? Là câu hỏi đã được trả lời?
magicandre1981

4

Tôi có thể xác nhận rằng Windows Updates Cleanup chiếm gần 100% mức sử dụng CPU, tất cả là về nén WinSxS và tái hòa nhập các bản cập nhật:

Windows Cleanup sử dụng CPU 100%

Tôi đã bắt đầu dọn dẹp lần đầu tiên sau khi cài đặt Windows và phải mất 2 giờ để hoàn thành 50%. Từ biểu đồ bạn có thể thấy, lúc đầu đọc rất nhiều tệp nhỏ từ đĩa (biểu đồ thứ hai) và sau khi sử dụng CPU 100% để nén, v.v.


2

Chỉ cần đặt câu hỏi, tôi đã thực hiện trên một máy ảo không thể thay đổi được các bước tiếp theo:

  1. Khởi động SystemResTHERCD và gắn kết phân vùng windows
  2. Liệt kê tất cả các tệp trên đĩa vào một tệp nhật ký (dưới một phút)
  3. Khởi động lại vào Windows
  4. Hãy cleanmgrthực hiện công việc của nó và ghi chú thời gian (hơn tám giờ)
  5. Khởi động lại vào SystemResTHERCD và gắn kết phân vùng windows
  6. Liệt kê tất cả các tệp trên đĩa sang một tệp nhật ký khác (chưa đầy một phút)
  7. Đặt lại máy ảo không thể thay đổi
  8. Khởi động lại vào Windows
  9. Thực hiện FOR / F ... để xóa các tệp như vậy trong dấu nhắc lệnh quản trị viên (cmd) và ghi chú thời gian (dưới năm phút)

Xin lưu ý rằng tôi đã khởi động lại vào Linux SystemResTHERCd để có thể liệt kê tất cả các tệp, cũng là những tệp được Window tìm và cũng có thể liệt kê nhanh nhất có thể (không cần kiểm tra acl, v.v.).

Ngoài ra, xin lưu ý rằng cleanmgrtôi chỉ tính thời gian sau khi kết thúc tìm kiếm (bản thân quá trình tìm kiếm cũng mất hơn sáu giờ).

Vì vậy, xóa các tệp không phải là cổ botle (bản thân việc xóa chỉ cần năm phút nhưng cleanmgrmất hơn tám giờ).

Việc tự xóa có thể diễn ra quá nhanh vì máy chủ là Linux, tốc độ đó được gây ra chỉ vì Linux lưu trữ tất cả ghi vào tệp có kích thước cố định được sử dụng làm đĩa trên máy ảo (24GiB) và vì tôi có 64GiB RAM và tôi cho Windows 16GiB, nó không cần sử dụng SWAP cũng không phải PAGEFILE.SYS; Ngoài ra, Linux có thể giữ toàn bộ tệp trên RAM (tôi đã kiểm tra tệp đó trên RAM và thời gian xóa được thực hiện rất nhiều, nhưngcleanmgr thời gian không giảm xuống).

Có, nếu tôi đặt đĩa ảo hoàn toàn vào RAM, cleanmgrthời gian sẽ không giảm nhưng nếu tôi xóa các tệp một cách cẩn thận, thời gian đó sẽ giảm xuống một chút (bộ đệm Linux ghi rất tuyệt khi bạn có 64GiB RAM trên đó).

Cấu hình của tôi cho các bài kiểm tra:

  • Máy chủ lưu trữ: Linux 64 bit phân phối trên một phần cứng mà các bộ phận chính là AMD Deca Core 5GHz với 64GiB RAM và bộ điều khiển Sata Raid0 với hai ổ cứng WD VelociRaptor (có thể duy trì tốc độ ghi tạm thời kết hợp gần 1GiB / giây và ghi ngẫu nhiên 4K 300MiB / giây); chi phí là> mười nghìn euro
  • Khách: Windows 10 Home với 16GiB ram và đĩa ảo 24GiB

Test1: Có đĩa ảo 24GiB trên ổ cứng vật lý Test2: Có đĩa ảo 24GiB trên RAM máy chủ Linux

Tôi sợ rằng cleanmgrđang làm một cái gì đó trên sổ đăng ký trên mỗi tệp mà nó xóa (truy cập vào sổ đăng ký rất thấp).

Màn hình tôi đã có:

  • Sử dụng CPU trên máy chủ Linux và trên Windows Guest (hầu hết thời gian từ 0% đến 1%, với mức tăng 5%, không hơn)
  • Sử dụng ổ cứng trên máy chủ Linux (gần 0% khi hoạt cleanmgrđộng, với mức tăng 2%), bộ đệm đĩa Linux thực sự tuyệt vời tránh việc gửi dữ liệu vào đĩa thực
  • Sử dụng ổ cứng trên máy khách Windows (hầu hết thời gian từ 2% đến 15% khi hoạt cleanmgrđộng, với mức tăng 28%)

Vì vậy, rõ ràng cleanmgrlà làm rất nhiều công việc không thể phát hiện, có thể thời gian ngủ? Có thể không, nếu đó là đăng ký, CPU không được tính bởi màn hình Windows, ổ cứng không được sử dụng (registry nằm trên RAM), v.v. và mỗi lần truy cập vào sổ đăng ký có thể mất hơn một giây .. . hãy thử chương trình của riêng bạn để truy cập sổ đăng ký bằng cách mở sổ đăng ký và đóng mỗi lần hành động thay vì để HK * mở ... đó là một sự khác biệt lớn.

Vì vậy, nếu cleanmgrlàm cho mỗi tập tin:

  1. Mở đăng ký HK *
  2. Tham khảo bất cứ nhu cầu nào và / hoặc thực hiện một số ghi trên sổ đăng ký
  3. Đóng đăng ký HK *

Nó có thể mất tới hai hoặc ba giây cho mỗi thao tác và nếu thực hiện một thao tác trên mỗi tệp, có thể mất gần một giờ cho mỗi nghìn tệp ... số lượng tệp của tôi chỉ hơn 40000 tệp một chút, vì vậy 40000 tệp / 8 giờ đang xử lý một tệp mỗi 1,3 giây ... mặt khác, việc xóa chúng trên một tập lệnh (sau khi biết các tệp đó) mất ít hơn năm phút, tức là xóa khoảng 133 mỗi giây ... một hufe Sự khác biệt.

Vì vậy, chắc chắn cleanmgrthời gian không phải là do deletionnó tự gây ra ! Nó đang làm gì khác? Xin M $ cải thiện tốc độ đó!


1
Đây không phải là một câu trả lời cho câu hỏi ban đầu. Nếu bạn có một câu hỏi mới, xin vui lòng đặt câu hỏi của riêng bạn (tham khảo câu hỏi này cho bối cảnh nếu nó giúp).
DavidPostill

Tại sao bạn không sử dụng trình theo dõi quá trình ( docs.microsoft.com/en-us/sysiternals/doads/procmon ) để phân tích các hành động của sổ đăng ký, v.v.?
gian mạng

* i m đột biến sp.
StingyJack

2

Một cách để giảm thiểu vấn đề này và tăng tốc giai đoạn "Dọn dẹp Windows Update" một chút là tạm thời đặt mức độ ưu tiên cao hơn cho quy trình TiWorker.exe trong suốt thời gian của hoạt động được gọi là 'dọn dẹp'.

Trong ngăn 'Chi tiết' của Trình quản lý tác vụ , tìm TiWorker.exevà bấm chuột phải để hiển thị menu bật lên. Đối với 'Đặt mức độ ưu tiên, "chọn" Trên mức bình thường ". Đối với tôi, điều này đã tăng TiWorkerhoạt động của CPU - từ mức trung bình khoảng 16% - lên đến toàn bộ tiềm năng 25% (trên máy 4 lõi).

nhập mô tả hình ảnh ở đây

Ngoài việc tăng tốc rất nhỏ - và có thể là cảm giác hoàn thành tốt - điều này cung cấp, có rất ít điều có thể được thực hiện vì rõ ràng "Windows Update Cleanup" được mã hóa theo cách mà vì một số lý do không xác định, tiến hành từng tệp, làm cho công việc tổng thể bị ràng buộc đĩa khủng khiếp.

Và cũng vậy, hãy biết rằng quá trình này có lẽ không được treo, và thực sự sẽ hoàn thành vào một ngày nào đó. Để xác minh điều này (và để đánh lạc hướng bản thân hơn nữa trong thời gian chờ đợi phiền phức này), bạn có thể kiểm tra phần 'Hoạt động trên đĩa' của Trình giám sát tài nguyên (chạy "resmon.exe").


Tốc độ rất tốt đẹp!
chủ quan

1

Xóa 20 tệp có kích thước 5mb sẽ mất nhiều thời gian hơn để xóa hơn 10 tệp có kích thước 64mb. Điều này là do khi hệ thống xóa các tệp, nó không thực sự xóa chúng (vì không gian trống trên ổ đĩa có thể được tạo từ các bit "nhiễu") mà chỉ ghi đè lên phần trước có nội dung: "Một tệp bắt đầu từ đây" với tiếng vô nghĩa và sau đó nó sẽ vui vẻ ghi đè lên nó và các phần sau đây khi bạn muốn sử dụng không gian. Trong thực tế, xóa cũng giống như viết khác.

Điều với dọn dẹp đĩa, là những thứ nó dọn dẹp thường là RẤT NHIỀU tệp nhỏ (cookie internet, tệp tạm thời, v.v.). Như vậy, nó ghi vào đĩa nhiều hơn rất nhiều thứ khác và có thể mất nhiều thời gian như cài đặt một cái gì đó mới, do khối lượng được ghi vào đĩa.


Câu hỏi ban đầu đặc biệt hỏi về Disk Cleanup.
liljoshu

0

Một lời cảnh báo khác: một phần của việc mất thời gian là khi dọn dẹp WinSxS, Disk Clean-up trước tiên phải giải nén rất nhiều tệp. Vì vậy, việc sử dụng đĩa thực sự tăng lên cho phần đầu tiên của việc dọn dẹp!


-2

Một cách khác để tăng tốc quá trình là chạy Disk Cleanup trong khoảng 5 phút. Dừng lại, sau đó khởi động lại nó, và nó sẽ lướt qua trong nháy mắt! Ngoài ra, De-Fragging hoặc Tối ưu hóa ổ cứng / SSD của bạn trước sẽ tăng tốc mọi thứ, chỉ cần nhớ khử lại / Optz nó một lần nữa sau khi dọn dẹp.


Vui lòng không chống phân mảnh ổ SSD của bạn, nó làm hao mòn chu kỳ đọc và ghi và gần như không đạt được.
Nordlys Jeger

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.