Windows 7 Shell: nhận lỗi tích lũy của trang


2

Tôi muốn đọc các trang (tích lũy) của một quá trình từ shell windows để quyết định khi nào nên giết nó. Quá trình sẽ bắt đầu năng động.

Tôi đã tìm thấy phần giết (ví dụ ở đây: Cách theo dõi và tự động giết một tiến trình trên các cửa sổ theo tên tiến trình ) nhưng tôi không tìm thấy cách nào để đọc các lỗi trang. Tôi đã thử pfmon.exe từ bộ tài nguyên windows (đã cài đặt rktools.exe mặc dù nó đưa ra cảnh báo không tương thích) với taskmgr và nó hoạt động - Tôi đã thử với MathKernel (quá trình trong câu hỏi và sau khi tôi thêm nó vào PATH) và pfmon nói rằng nó không được hỗ trợ.

Tôi biết về danh sách tác vụ nhưng điều này chỉ cho tôi thấy thời gian sử dụng và bộ nhớ cpu.

Có cách nào khác để đọc lỗi trang không? Có thể sử dụng taskmanager bằng cách nào đó tự động?

Lý lịch:

Điều này có liên quan đến bài viết của tôi về một vấn đề trong Mathematica ở đây mà tôi không thể tìm ra giải pháp (tôi đã thử 1 câu trả lời ở đó). Kịch bản của tôi chạy 8 Kernels Mathicala song song cho một tính toán mất ~ 10 giờ và đôi khi một hoặc hai trong số chúng chặn. Tôi đã khởi động lại chúng cho mỗi tính toán nhưng hành vi chiếm ưu thế. Hiện tại tôi kiểm tra thường xuyên với taskmanager trên chúng và tiêu diệt các tiến trình MathKernel.exe tích tụ rất nhiều lỗi trang. Lưu ý rằng thời gian xử lý / tải và sử dụng bộ nhớ không hữu ích trong khi các quy trình MathKernel.exe khác vẫn đang chạy. Đó là lý do tại sao tôi cần các lỗi trang - tôi muốn so sánh tất cả 8 quy trình nói mỗi phút và nếu một lỗi có 10 lần lỗi trang khác thì tôi muốn giết nó.

Câu trả lời:


1

Có cách nào khác để đọc dữ liệu này?

Bạn có thể sử dụng pslist từ Windows Sysiternals :

Khóa viết tắt bộ nhớ

Tất cả các giá trị bộ nhớ được hiển thị bằng KB.

Pri: Priority
Thd: Number of Threads
Hnd: Number of Handles
VM: Virtual Memory
WS: Working Set
Priv: Private Virtual Memory
Priv Pk: Private Virtual Memory Peak
Faults: Page Faults
NonP: Non-Paged Pool
Page: Paged Pool
Cswtch: Context Switches

Các faultsgiá trị là tổng số lỗi trang.

Bạn sẽ cần ID quy trình của các quy trình bạn muốn theo dõi.

Ví dụ đầu ra:

> pslist -m 6272

PsList v1.4 - Process information lister
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Process memory detail for HAL:

Name                Pid      VM      WS    Priv Priv Pk   Faults   NonP Page
firefox            6272 2707156 1038508 1015532 1191600 34880695    194  596

Bạn có thể sử dụng tệp bó hoặc tập lệnh PowerShell để phân tích kết quả đầu ra này.

Khước từ

Tôi không liên kết với Windows Sysiternals theo bất kỳ cách nào, tôi chỉ là người dùng cuối phần mềm của họ.


Cảm ơn DavidPostill! Tôi đã thử nó và nó làm những gì tôi muốn. Tôi sẽ đăng tập tin lô của tôi trong Câu hỏi khác tôi liên kết.
Kab

Tôi cũng không cần sử dụng PID. Tôi chỉ có thể sử dụng "pslist -m -nobanner MathKernel" và nó sẽ tìm thấy tất cả các quy trình.
Kab

@Kab Đúng. Câu trả lời của tôi chỉ là một minh họa. Bạn phải xác định các quy trình bằng cách nào đó ...
DavidPostill
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.