Làm thế nào để tôi đi đến nguyên nhân gốc rễ của các Cuộc gọi Thủ tục Trì hoãn cao?


41

Tôi đã có bộ xử lý lõi kép và một trong hai bộ này liên tục ở mức 100%. Nhìn vào ProcessExplorer cho tôi thấy rằng đó là các cuộc gọi thủ tục bị hoãn. Đọc trên mạng dường như cho tôi rất nhiều câu trả lời khác nhau.

Có thể đặt ra một vài bước để cố gắng thu hẹp vấn đề có thể xảy ra trong trường hợp của tôi không?

Cập nhật 1: FWIW, sự cố vẫn tồn tại ngay cả ở Chế độ an toàn.

Cập nhật 2: Tôi đã rút tất cả mọi thứ tôi có thể từ mặt sau của PC và điều đó đã mua cho tôi bộ xử lý miễn phí hơn 40%. Tôi cũng đã tải xuống công cụ RATTV3 , nhưng vì một số lý do trên máy của tôi, nó không mang lại cho tôi sự cố do trình điều khiển. Có một mô tả hay về cả DPCLatencyChecker và RATTV3 tại đây .

Cập nhật 3 : , LatencyMon (xem câu trả lời của tôi bên dưới) cho tôi biết đó là nvstor32.sys- trình điều khiển SATA của NVidia - với thời gian khoảng 5300 Lời nói.

Cập nhật 4: Cốt truyện dày lên, trong khi suy nghĩ xem có nên thử khởi động đĩa khôi phục hay không (để xem đó có thực sự là trình điều khiển không và có phải là sự cố phần cứng không), tôi nhận thấy rằng trình phát DVD / CD không hoạt động (tức là không mở cửa khi tôi nhấn nút). Cho rằng máy vừa quay trở lại sau khi thay thế bo mạch chủ, tôi đoán có lẽ họ đã quên cắm nó vào. Tôi mở hộp, mọi thứ có vẻ ổn, nhưng tôi đã rút phích cắm và cắm lại. Khi khởi động lại, mọi thứ đều ổn - không còn DPC nữa (cao nhất hiện nay là 300).

Cập nhật 5: Vào ngày hôm sau, sự cố trở lại, trình phát CD không hoạt động trở lại, ngay cả con trỏ trong hộp văn bản mật khẩu cũng nhấp nháy trong chuyển động chậm ... Đã thử rút phích cắm mọi thứ tôi có thể nghĩ và khi khởi động lại lần thứ hai, hoạt động trở lại (như tại Update2 ). Lần tới tôi sẽ thử rút hoàn toàn đầu phát CD ...

Cập nhật 6: Chỉ cần lưu ý Nhật ký sự kiện hệ thống đã nvstor32.sysđưa ra thông báo lỗi Parity error detected in \Device\RaidPort0, sau đó cảnh báo về việc gửi lại thông báo. Bây giờ chỉ cần tìm ra cái nào RaidPort0là ... (lưu ý, tôi không có thiết lập RAID, nó chỉ là một Acer tiêu chuẩn không có thật). Ồ, và thiết lập Avast của tôi dường như đã bị giết khi tôi thực hiện System Rollback (hoặc bất cứ thứ gì nó được gọi), vì nó sẽ không khởi động (lỗi RPC), sẽ không gỡ cài đặt (đã xảy ra lỗi setiface).

Cập nhật 7: Cuối cùng cũng có thời gian để khởi động lại với DVD đã được rút ra. Không có vấn đề DPC nữa! (rất nhiều lỗi trang mặc dù, nhưng đó là cho sau này). Bước tiếp theo: tìm ra nếu đó là cáp hoặc đầu DVD.

Cập nhật 8: Mượn cáp SATA, khởi động cùng với nó, không có vấn đề gì. Đầu đĩa CD / DVD hoạt động, không có sự cố DPC nvstor32.sysnào, không có bộ xử lý nào bị chặn. Kết thúc có hậu ... gần như: Tôi vẫn gặp sự cố với Avast, các sự cố DPC rõ ràng storport.syskhi khởi động (có thể là bình thường đối với USB?) Và rất nhiều lỗi trang cứng. Nhưng đó sẽ là chủ đề của các câu hỏi khác.

Phần tái bút: Gần đây tôi bắt đầu gặp vấn đề tương tự và sử dụng cùng một phương pháp, đã quản lý để theo dõi nó xuống một thanh USB (cái mà tôi đang sử dụng cho ReadyBoost) bị bắn.


3
Các công cụ thực sự tốt và trợ giúp tại đây ... msfn.org/board/topic/,
Moab

Câu trả lời:


43

Đây là câu chuyện về cách tôi tìm ra nguyên nhân của độ trễ DPC cao của mình.


Hệ thống của tôi đã trải qua các lần nhấp và bật trong khi phát lại âm thanh. Tôi biết điều này có nghĩa là một cái gì đó trong chế độ kernel đã ăn mòn CPU. Suy nghĩ đầu tiên của tôi là chọc xung quanh Process Explorer , và xem liệu có thứ gì không phù hợp không. Điều duy nhất thu hút sự chú ý của tôi là một lượng thời gian quá lớn dành cho việc thực hiện các Cuộc gọi Thủ tục Trì hoãn (DPC):

Ảnh chụp màn hình của Process Explorer hiển thị thời gian DPC cao

Tôi biết rằng các DPC là mã đang được chạy trong trình điều khiển; các thách thức là để tìm ra tài xế. Tôi đã chuyển sang Trình kiểm tra độ trễ DPC , điều này cho tôi thấy độ trễ là như thế nào:

ảnh chụp màn hình của Bộ kiểm tra độ trễ DPC

Trình kiểm tra độ trễ DPC đề xuất đi qua các thiết bị trong Trình quản lý thiết bị và vô hiệu hóa từng phần cứng không cần thiết (ví dụ: card mạng, card âm thanh), hy vọng cách ly trình điều khiển lỗi. (Nếu bạn vô hiệu hóa một thiết bị và độ trễ DPC đột nhiên giảm xuống: bạn đã tìm thấy thủ phạm của mình!)

ảnh chụp màn hình của thiết bị vô hiệu hóa

Thật không may, sau khi vô hiệu hóa mọi thứ tôi có thể (trong khi vẫn có thể sử dụng máy tính - không vô hiệu hóa ổ cứng, thẻ video, chuột hoặc bộ chia USB mà chuột đã cắm vào!), Độ trễ vẫn còn cao. Tiếp theo, tôi chuyển sang Bộ công cụ hiệu suất Windows (một phần của SDK Windows ) và một bài đăng blog tuyệt vời của Peter Weiland, "Đo thời gian DPC" . Sau khi cài đặt Bộ công cụ hiệu suất Windows:

Ảnh chụp màn hình của trình cài đặt Windows SDK, với Bộ công cụ hiệu suất Windows được chọn

Tôi đã mở một dấu nhắc lệnh nâng cao và chạy:

>xperf -on Latency

Lưu ý : Latency Nhóm là một tập hợp các sự kiện được xác định trước có thể được theo dõi từ nhà cung cấp Kernel Group :

>xperf -providers kg
   Base           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+MEMINFO
   Diag           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+COMPACT_CSWITCH
   DiagEasy       : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER
   Latency        : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE
   ...

Trong trường hợp này Latencytương ứng với Cờ hạt nhân:

  • PROC_THREAD Quá trình tạo và xóa chủ đề
  • LOADER Kernel và chế độ người dùng Sự kiện tải / hủy hình ảnh
  • Hồ sơ mẫu CPU HỒ SƠ
  • Chuyển đổi bối cảnh CSWITCH
  • DPC DPC Sự kiện
  • Sự kiện gián đoạn INTERRUPT
  • DISK_IO Đĩa I / O
  • HARD_FAULTS Lỗi trang cứng

Sau khi để nó chạy trong một phút, tôi dừng theo dõi và lưu nó vào một tệp:

C:\Users\Ian\Desktop\xperf -d thingy1.etl

Và sau đó tôi đã xem kết quả của dấu vết bằng lệnh:

C:\Users\Ian\Desktop\xperf thingy1.etl

Điều này tải Trình phân tích hiệu suất Windows đồ họa . Nhấp chuột phải vào biểu đồ Sử dụng CPU DPC , tôi đã chọn Bảng Tóm tắt . Điều này cho thấy sự cố về thời gian dành cho các DPC của trình điều khiển:

ảnh chụp màn hình của đầu ra XPerf

Ngay lập tức tôi có thể thấy một trình điều khiển ( tsvp.sys) mất trung bình 2,8ms cho mỗi lần thực hiện DPC, tốc độ chậm hơn bất kỳ trình điều khiển nào khác:

ảnh chụp màn hình

Googling tsvp.sysđã cho tôi câu trả lời: CommView , mà tôi đã cài đặt gần đây.

Câu hỏi bây giờ là làm thế nào để vô hiệu hóa trình điều khiển này. Sử dụng AutoRun , tôi có thể thấy rằng nó được cài đặt như một dịch vụ trình điều khiển:

ảnh chụp màn hình của autorun

Sử dụng Trình quản lý thiết bị, tôi có thể vô hiệu hóa dịch vụ lưu trữ trình điều khiển này. Trước tiên, bạn phải Hiển thị các thiết bị ẩn , sau đó mở rộng Non-Plug and Play Driversnút:

ảnh chụp màn hình của người quản lý thiết bị

Cuối cùng tôi có thể dừng dịch vụ trình điều khiển và tôi đã thay đổi chế độ khởi động từ System(có nghĩa là trình điều khiển là một phần thiết yếu của Windows và Windows không thể khởi động mà không có nó), thành Demand(có nghĩa là tôi có thể khởi động trình điều khiển khi tôi muốn):

ảnh chụp màn hình của người quản lý thiết bị

Dừng dịch vụ trình điều khiển ngay lập tức khắc phục độ trễ DPC của tôi:

ảnh chụp màn hình

Tôi có thể hoặc không thể gỡ cài đặt hoàn toàn CommView, nhưng hiện tại tôi đã giải quyết Trường hợp Độ trễ DPC cao.


Cập nhật : Bắt đầu với Windows 8, bạn không còn thấy Trình điều khiển không cắm và chạy trong Trình quản lý thiết bị :

Lưu ý Bắt đầu với Windows 8 và Windows Server 2012, Trình quản lý Plug-and-Play không còn tạo ra các phản hồi thiết bị cho các thiết bị không phải PnP (cũ). Do đó, không có thiết bị nào như vậy để xem trong Trình quản lý thiết bị. Để bao gồm các thiết bị ẩn trong màn hình Trình quản lý thiết bị, bấm Xem và chọn Hiển thị thiết bị ẩn.

Microsoft đã lấy đi tính năng này và thay thế nó bằng không có gì. Làm tốt lắm.

Trong cơn thịnh nộ điển hình, một số câu trả lời không có ích :

  • Trình quản lý thiết bị không bao giờ hiển thị trình điều khiển không pnp
  • Tại sao bạn cần điều này?

May mắn thay, NirSoft đã tạo ra một sự thay thế. ServiWin cho phép bạn xem, dừng và bắt đầu tất cả các dịch vụ (ngay cả những dịch vụ mà Microsoft quyết định quản trị viên sẽ được phép xem):

ảnh chụp màn hình của ServiWin


13

BÁO CÁO TIẾN TRÌNH

Công cụ tốt nhất tôi tìm thấy cho đến nay là LatencyMon , về cơ bản thực hiện mọi thứ mà hai công cụ trước đó làm mà không khiến bạn phải suy nghĩ. Trang tải xuống yêu cầu bạn đăng ký qua email - nhưng không có gì xảy ra với tôi khi tôi làm điều đó - nhưng bạn có thể cuộn xuống cuối trang để tải xuống bằng mọi cách.

văn bản thay thế


6

Trong trường hợp của tôi, tôi đã sử dụng LatencyMon (từ câu trả lời của Stewol ) và thấy rằng trình điều khiển đóng băng cuộc sống, vũ trụ và tất cả mọi thứ (cũng) storport.syslà trình điều khiển của Microsoft cho " xe buýt hiệu suất cao ". Điều đó khẳng định tôi nghi ngờ rằng vấn đề có liên quan đến IO.

Tôi cũng đã tiếp tục và xem Trình xem sự kiện Windows 7 , thư mục Windows Logs -> Ứng dụng và thấy một số lỗi từ Volume Shadow Copy (VSS) xảy ra cứ sau 30 phút đến 2 giờ. Chúng là chi tiết như thế này:

Volume Shadow Copy Service error: Error calling a routine on the Shadow Copy Provider {b5946137-7b9f-4925-af80-51abd60b20d5}. Routine returned E_INVALIDARG. Routine details GetSnapshot({00000000-0000-0000-0000-000000000000},000000000023C850). 

Operation:
   Get Shadow Copy Properties

Context:
   Execution Context: Coordinator

Sau đó tôi bắt đầu điều tra xem VSS là cái quái gì và nó được dùng để làm gì. Tôi đã xem qua một vài - trang - về - khắc phục sự cố VSS . Vượt qua tất cả những người tôi có một nghi ngờ lớn: phần mềm sao lưu CrashPlan của tôi .

Theo sự dẫn dắt đó, tôi nhanh chóng tìm thấy một trang liên quan đến nó với các lỗi VSS . Bằng cách làm theo các hướng dẫn ở đó để vô hiệu hóa sao lưu các tệp đang mở, sử dụng VSS, việc đóng băng, sử dụng CPU Kernel cao, v.v ... đã hoàn toàn tuyệt chủng. Và đừng hiểu sai ý tôi: CrashPlan thật tuyệt! Chỉ có tính năng này không hoạt động trên máy của tôi.

BTW, trang này ngay tại đây là MỘT đã cho tôi sự dẫn dắt ban đầu giúp tôi tìm ra nguyên nhân gốc rễ của các vấn đề của mình. Cảm ơn rất nhiều @Benjol và tất cả những người khác đã trả lời trước đó! Tôi hy vọng câu trả lời của tôi cũng sẽ giúp người khác ...


Cảm ơn Chuim, có lẽ vấn đề chính xác của tôi cũng vậy, tôi đã làm việc để giải quyết vấn đề này trong nhiều tuần và cuối cùng tôi đã thu hẹp nó xuống VSS và repositoryport.sys nhưng không thể tìm ra nguyên nhân gốc (CrashPlan sao lưu các tệp đang mở) cho đến khi bài viết của bạn. Tôi không chắc chắn nếu điều này sẽ khắc phục nó, nhưng đó là sự dẫn đầu tốt nhất mà tôi có cho độ trễ DPC cao cho đến nay!
Matt Palmerlee

Tôi vừa xác minh rằng điều chỉnh cài đặt crashplan để không sao lưu các tệp đang mở! Cám ơn rất nhiều! Bây giờ tôi có thể chơi Skyrim mà không bị tạm dừng âm thanh khủng khiếp và trục trặc!
Matt Palmerlee

Chỉ muốn nói thêm rằng tôi đã gặp phải tình trạng nói lắp âm thanh sau khi xây dựng PC mới và thấy rằng Crashplan cũng là thủ phạm. Tìm thấy câu trả lời này qua computercabal.com/2012/07/debugging-audio-skipping-lagging.html . Cảm ơn tất cả đã làm rất nhiều công việc để theo dõi điều này!
chucknelson

4

Có lẽ có một trình điều khiển thiết bị giữ cho hệ thống của bạn bận rộn. Một cách để phân tích điều này là chạy trình kiểm tra độ trễ DPC . Sau đó vô hiệu hóa một trình điều khiển tại một thời điểm và xem nếu tải DPC đi xuống. (Quá trình thám hiểm cũng hoạt động.)

Bạn có thể tắt trình điều khiển thiết bị trong Quản lý máy tính -> Trình quản lý thiết bị.


cảm ơn, tôi sẽ đọc lên liên kết đó Xin lỗi vì sự thiếu hiểu biết của tôi, nhưng tôi có thể vô hiệu hóa thiết bị nào một cách an toàn mà không 'cắt nhánh' (ví dụ: bàn phím, màn hình, chuột, v.v.)?
Stewol

1
Không chắc chắn, nghi phạm chính của tôi sẽ là các dịch vụ không phải của Microsoft. Tôi chỉ cần thử, nếu nó bị lỗi, bạn có thể khởi động ở chế độ an toàn và bật lại trình điều khiển
Andomar

OK, tôi thấy trang đó bao gồm một danh sách các trình điều khiển cần tránh. Phải hy vọng nó không phải là một trong số họ.
Stewol

Trước đó, tôi nghĩ rằng tôi sẽ thử khởi động từ đĩa khôi phục - nếu tôi vẫn gặp sự cố, nhiều khả năng đó có phải là một vấn đề về phần cứng không?
Stewol

1
+1 cho trình kiểm tra độ trễ. Theo kinh nghiệm của tôi, thủ phạm phổ biến nhất ở đây là trình điều khiển cho một card mạng không dây.
Shinrai

3

Tôi cảm thấy tôi nên thêm câu trả lời của mình ở đây vì vấn đề này rất khó giải quyết và không phải lúc nào cũng giảm xuống các trình điều khiển xấu hoặc xung đột IRQ.

Tôi có độ trễ RPC cao gây ra pops / crackles trong card âm thanh USB chuyên nghiệp của tôi. Các công cụ được mô tả trong câu trả lời được chấp nhận không hữu ích trong việc xác định một trình điều khiển cụ thể gây ra sự cố. Độ trễ đã xảy ra trên một số quy trình: HAL, USBPORT.SYS và nhân Windows. Việc đào sâu hơn vào các quy trình này không tiết lộ một thủ phạm rõ ràng.

Trong trường hợp của tôi, vấn đề là ở cấp độ thấp hơn và cụ thể đối với bo mạch chủ GigaByte với một số chipset và phiên bản BIOS nhất định. Giải pháp là vô hiệu hóa Intel SpeedStep và tất cả các tính năng cụ thể khác của bo mạch chủ đã điều chỉnh tốc độ và điện áp CPU khi đang di chuyển. Khi các tùy chọn này bị tắt, độ trễ RPC của tôi ngay lập tức được khắc phục.


1

Tôi bắt đầu thấy lỗi này sau khi khắc phục lỗi IRQ với bộ điều khiển Ethernet nVidia 10/100/1000 của tôi xuất hiện khi nâng cấp card đồ họa của tôi lên GeForce GTX 550 Ti.

Có vẻ như sau khi nâng cấp lên trình điều khiển GeForce mới 295.73 và sau đó giải quyết xung đột ngắt, tôi đã gỡ bỏ, làm hỏng hoặc gỡ cài đặt trình điều khiển bộ điều khiển SATA / RAID hiện tại. Tôi không sử dụng RAID, thỉnh thoảng vẫn xảy ra lỗi và khóa Vista Ultimate 64-bit.

Sau khi thử tất cả các đề xuất khắc phục sự cố tôi tìm thấy trên web, một giải pháp đơn giản đã tự trình bày ... Tôi đã nâng cấp lên bộ điều khiển nForce SATA / RAID 15,58, nhưng chỉ để lại các trình điều khiển nForce khác.

Điều đó đã khắc phục nó cho tôi và bây giờ tôi đã giải quyết tất cả các xung đột trình điều khiển của mình. Mong nó cũng giúp được cho bạn.

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.