Độ trễ DPC cao không có nghĩa là đường VPN chậm
Thời gian của trình điều khiển, các lượt đi về của tiếng vọng và sự kiện phiên đổ lỗi cho nhau. Hãy đọc mỗi bộ đếm đo gì trước khi thay một thành phần.
Một lỗi âm thanh và một lần tạm dừng VPN rơi vào cùng mười giây, và một tiện ích báo cáo con số cao được dán nhãn độ trễ DPC. Cám dỗ là kết luận rằng trình điều khiển đang làm chậm đường hầm, hoặc đường hầm đang gây áp lực cho trình điều khiển. Cả hai kết luận đều không suy ra từ con số đó.
Ba phép đo đang tham gia ở đây, và chúng không chia sẻ cùng một ranh giới.
Ba con số, ba ranh giới
Lệnh gọi thủ tục bị hoãn là công việc mà trình điều khiển hoãn lại từ trình xử lý ngắt của nó, và thời gian bên trong các quy trình đó là phép đo cục bộ theo bộ xử lý được quy cho mô-đun và hàm. Lượt đi về của tiếng vọng là quan sát thời gian tại ổ cắm, do ngăn xếp mạng và bộ trả lời từ xa tạo ra. Sự kiện ngắt kết nối là chuyển đổi trạng thái do máy khách ghi lại. Mỗi phép đo trả lời một câu hỏi mà các phép khác không thể, và cùng đơn vị không làm chúng thay thế được cho nhau.
Kỷ luật hữu ích là gọi tên ranh giới trước khi đọc giá trị. Viết đơn vị và ranh giới cạnh nhau. Nếu một công cụ báo mili giây, hãy hỏi mili giây của cái gì: thời gian trong một quy trình, thời gian chờ chạy, hay thời gian cho đến khi câu trả lời đến.
Một con số cao trong một hạng mục là manh mối, không bao giờ là chẩn đoán.
Đọc định nghĩa đằng sau tiêu đề
Các tiện ích khác nhau ở cái mà chúng gọi là độ trễ. Một số báo cáo thời lượng các quy trình của trình điều khiển, số khác báo cáo độ trễ lập lịch, và hai đại lượng này có thể đi theo hướng ngược nhau trên cùng một máy. Một bảng điều khiển chỉ gọi một trong số đó là độ trễ DPC đã nói với bạn ít hơn vẻ ngoài của nó. Vì vậy hai bảng điều khiển có thể không đồng ý về một máy hoàn toàn không thay đổi.
Cùng sự thận trọng áp dụng bên trong một công cụ phân tích. Thời lượng bao gồm theo dõi một quy trình từ lúc vào đến lúc ra, trong khi thời lượng riêng chỉ cộng các đoạn mà chính quy trình đó đang thực thi. Chọn nhầm cột biến người gọi thành kẻ có tội.
Công việc cục bộ của trình điều khiển và độ trễ mạng cũng tương tác mà không hòa vào nhau. Hoạt động quá mức liên quan đến ngắt có thể làm chậm công việc nhạy cảm thời gian trên máy, và một đường bị tắc có thể làm chậm gói tin, và cả hai có thể đúng trong cùng một lần tạm dừng nhìn thấy được.
Đặt mọi quan sát trong một cửa sổ
Một bản ghi vết chỉ hữu ích nếu bạn đọc khoảng thời gian chứa triệu chứng. Ghi bản ghi vết, sự kiện của máy khách và lỗi của ứng dụng với dấu thời gian, sau đó xem cùng những giây đó ở cả ba. Giá trị lớn nhất từ một bản ghi vết kéo dài một giờ và một lần ngắt kết nối vào chiều hôm đó là hai sự thật không liên quan.
wpr -start CPU -filemode
wpr -stop vpn-trace.etl
xperf -i vpn-trace.etl -a dpcisr -o dpc.txt
Sau đó mở bản ghi vết trong công cụ phân tích và sắp xếp theo thời lượng bên trong cửa sổ đó, thay vì theo toàn bộ bản ghi. hướng dẫn phân tích CPU mô tả chế độ xem thời lượng DPC/ISR quy thời gian cho mô-đun và hàm.
Xác nhận điều gì thực sự đã xảy ra với đường hầm trong khi bạn ở đó. Mất lưu lượng ứng dụng trong chốc lát không có nghĩa là máy khách bắt đầu một cuộc thương lượng mới, và thành công của một phép thử nhỏ không chứng minh rằng mọi thứ khác vẫn tiếp tục hoạt động.
Thay thành phần mà bằng chứng chỉ ra
Một mô-đun bận là nơi để điều tra, không phải phán quyết. Nó có thể đang làm công việc do thành phần khác hoặc do tải bạn tạo ra gây nên. Giữ cùng nhau tên mô-đun, thiết bị, phiên bản trình điều khiển và khoảng thời gian quan sát, vì chính bộ đó là thứ nhà cung cấp có thể xử lý.
Một thay đổi mỗi thí nghiệm là cách duy nhất để học từ kết quả. So sánh có dây thu hẹp phạm vi, nhưng nó thay đổi đồng thời đường vô tuyến và hoạt động của trình điều khiển, nên hãy coi đó là manh mối chứ không phải bằng chứng.
Coi bản ghi vết là nhạy cảm. Nó có thể chứa tên tiến trình và chi tiết môi trường, vì vậy nó thuộc kênh ghi được hỗ trợ chứ không phải tệp đính kèm công khai. Cho biết bản ghi vết nhằm trả lời quan sát nào.