Powershell Get-Process giá trị bộ nhớ âm


8

Tôi đã thực hiện một số xác minh với lệnh ghép ngắn Powershell Get-Process và nhận được một số giá trị kỳ lạ về một số quy trình. Tôi đã thử nghiệm trên một máy chủ có SQL Server Instance chạy và tiêu thụ 3GB + RAM như Resource Monitor đã báo cáo và khi chạy Get-Process, tôi nhận được các giá trị âm cho Workset trên quy trình máy chủ SQL, một quá trình khác đang tiêu tốn 2GB + PrivateMemorySize và có cùng giá trị âm trên PM.

Dưới đây là ảnh chụp màn hình của kết quả.

Giám sát tài nguyên Hệ điều hành ở Bồ Đào Nha, xin lỗi.

Quyền hạn:

nhập mô tả hình ảnh ở đây Kiểm tra sqlservr và scvhost cuối cùng ...

May mắn thay, tập lệnh của tôi sử dụng WMI (lớp Win32_Process) để nhận thông tin về quy trình và các giá trị ở đó là chính xác và mọi thứ khớp với nhau ..

Có phải là một lỗi? Có thể với những giá trị lớn? Tôi đang sử dụng Powershell v3.

Câu trả lời:


11

Đây có phải là Máy chủ x64 không? Nếu vậy, có thể blogpost này giải thích vấn đề của bạn. Rõ ràng nó có liên quan đến cách quá trình get-đọc bộ nhớ hệ thống x64:

Lý do người đăng đã nhìn thấy các số âm khá đơn giản: thuộc tính WS được đặt bí danh cho Workset, nhưng Workset là một giá trị 32 bit. Trong trường hợp của người gửi, kích thước bộ làm việc đã tràn giá trị 32 bit, dẫn đến số âm được hiển thị.

Giải pháp theo blog cuối cùng là thực thi định dạng của kết quả truy vấn:

$process = “*SQL"*” GPS $process | ft name, workingset64 –auto


Cảm ơn, tôi nghi ngờ nó có một cái gì đó với kích thước giá trị và vân vân. Ngoài ra, tôi chỉ có thể nhận được kết quả chính xác khi chạy lệnh cục bộ trên máy chủ, nếu tôi chạy từ xa với tham số -ComputerName, tôi nhận được kết quả âm tương tự. Chạy với PSSession hoạt động tốt.
esserafael

0

Việc chọn Workset64 thay vì Workset đã giúp tôi thực hiện thủ thuật mà không cần định dạng.

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.