Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Quản lý ưu tiên quy trình trong Windows

Hãy nói về mức độ ưu tiên của các quy trình Windows . Trong hầu hết các trường hợp, không cần phải suy nghĩ về cài đặt ưu tiên quy trình tùy chỉnh, nhưng đôi khi quản trị viên hệ thống đủ điều kiện có thể giúp hệ thống phân bổ tốt hơn thời gian xử lý giữa các tác vụ đang chạy. Khi nào là cần thiết? Ví dụ:trên máy chủ ứng dụng, bạn có thể cung cấp thêm thời gian CPU cho ứng dụng và máy chủ SQL, vì các quy trình quan trọng nhất về tài nguyên.

Nói chung, bạn có thể xem và thay đổi mức độ ưu tiên của quá trình bằng Trình quản lý tác vụ (someprocess.exe -> Đặt mức độ ưu tiên)

Windows NT / 2000/7/2008

Quản lý ưu tiên quy trình trong Windows

Trong Windows Server 2012, các cài đặt này nằm trên tab Chi tiết.

Quản lý ưu tiên quy trình trong Windows

Như bạn có thể thấy từ các ảnh chụp nhanh này, chỉ có 6 loại ưu tiên (như nó sẽ được giải thích ở phần sau, đây là các lớp ưu tiên ) có sẵn. Đủ chưa? Microsoft nghĩ rằng, đúng như vậy. Nhưng chúng ta hãy nhớ câu nói sử thi của Bill Gates, người đã nói rằng “640 KB RAM sẽ là đủ cho tất cả mọi người”. Nhưng thời gian đã chỉ ra rằng nó còn lâu mới xảy ra. :)

Bây giờ hãy xem, nó thực sự trông như thế nào.

Trên thực tế, có 32 mức ưu tiên trong Windows, từ 0 đến 31.

Chúng được nhóm lại như sau:

  1. 31 - 16 là mức thời gian thực
  2. 15 - 1 là các cấp độ động
  3. 0 là cấp hệ thống dành riêng cho chuỗi không trang

Khi một quá trình được tạo, nó được chỉ định một trong sáu lớp ưu tiên :

  1. Lớp thời gian thực (giá trị 24),
  2. Cao cấp (giá trị 13),
  3. Trên lớp bình thường (giá trị 10),
  4. Lớp bình thường (giá trị 8),
  5. Dưới mức bình thường (giá trị 6),
  6. hoặc lớp Không hoạt động (giá trị 4).

Như đã được đề cập ở trên, bạn có thể xem mức độ ưu tiên của quy trình bằng Trình quản lý tác vụ.

Lưu ý . Mức độ ưu tiên Trên bình thường và Dưới bình thường lần đầu tiên xuất hiện trong Windows 2000.

Mức độ ưu tiên của mỗi luồng ( ưu tiên luồng cơ bản ) bao gồm mức độ ưu tiên của quy trình và mức độ ưu tiên tương đối của chính chủ đề. Có bảy loại ưu tiên tương đối của các chủ đề:

  • Bình thường:giống như quy trình đã có
  • Trên mức bình thường:+1 mức độ ưu tiên của quy trình
  • Dưới mức bình thường:-1 từ mức độ ưu tiên của quy trình
  • Cao nhất:+2;
  • Thấp nhất:-2;
  • Thời gian quan trọng:đặt mức độ ưu tiên hiện tại của một luồng là 31 cho lớp Thời gian thực và 15 cho các lớp còn lại
  • Không hoạt động:đặt mức độ ưu tiên hiện tại của một luồng là 16 cho lớp Thời gian thực và 1 cho các lớp còn lại

Bảng sau đây hiển thị các mức độ ưu tiên của quy trình, mức độ ưu tiên tương đối và hiện tại của một luồng.

Mức độ ưu tiên của chuỗi Lớp Quy trình Lớp Quy trình
Lớp không hoạt động Dưới mức bình thường Lớp học bình thường Trên mức bình thường Cao cấp Lớp thời gian thực
1 Không hoạt động Không hoạt động Không hoạt động Không hoạt động Không hoạt động
2 Thấp nhất
3 Dưới đây…
4 Lớp không hoạt động Bình thường Thấp nhất
5 Trên… Dưới đây…
6 Dưới mức bình thường Cao nhất Bình thường Thấp nhất
7 Trên… Dưới đây…
8 Lớp học bình thường Cao nhất Bình thường Thấp nhất
9 Trên… Dưới đây…
10 Trên mức bình thường Cao nhất Bình thường
11 Trên… Thấp nhất
12 Cao nhất Dưới đây…
13 Cao cấp Bình thường
14 Trên…
15 Cao nhất
15 Thời gian quan trọng Thời gian quan trọng Thời gian quan trọng Thời gian quan trọng Thời gian quan trọng
16 Không hoạt động
17
18
19
20
21
22 Thấp nhất
23 Dưới đây…
24 Lớp thời gian thực Bình thường
25 Trên…
26 Cao nhất
27
28
29
30
31 Thời gian quan trọng

Làm cách nào để bắt đầu một quy trình với mức độ ưu tiên không chuẩn hoặc thay đổi nó?

Phương pháp 1. Bắt đầu một tác vụ / quy trình và thay đổi mức độ ưu tiên của nó bằng Trình quản lý tác vụ

Nhược điểm của phương pháp:

  • Chỉ có 6 loại ưu tiên khả dụng
  • Ưu tiên là những thay đổi bằng chuột của bạn và bạn không thể làm cho nó tự động.

Phương pháp 2. Bạn có thể sử dụng lệnh START với các phím tương ứng

Các khóa khả dụng chịu trách nhiệm cho các ưu tiên như sau (Tôi cố tình bỏ qua các khóa của START lệnh, không liên quan đến quá trình thiết lập mức độ ưu tiên đang được mô tả):

C:\>start /?
Khởi động một cửa sổ riêng biệt để chạy một chương trình hoặc lệnh cụ thể.
START [“title”] [/ D path] [/ I] [/ MIN] [/ MAX] [/ SEPARATE | / SHARED]
[/ LOW | / BÌNH THƯỜNG | / CAO | / REALTIME | / VÔ THƯỜNG | / BÊN DƯỚI BÌNH THƯỜNG]
[/ NODE ] [/ AFFINITY ] [/ WAIT] [/ B]
[lệnh / chương trình] [tham số]
THẤP Bắt đầu ứng dụng trong lớp ưu tiên IDLE.
BÌNH THƯỜNG Bắt đầu ứng dụng trong lớp ưu tiên BÌNH THƯỜNG.
CAO Bắt đầu ứng dụng ở lớp ưu tiên CAO.
REALTIME Bắt đầu ứng dụng trong lớp ưu tiên REALTIME.
ABOVENORMAL Bắt đầu ứng dụng trong lớp ưu tiên BẤT NGỜ.
BÊN DƯỚI Bắt đầu ứng dụng trong lớp ưu tiên DƯỚI ĐÂY.

Như chúng ta có thể thấy, lệnh START cho phép chạy một quy trình có cùng 6 mức độ ưu tiên có sẵn trong Trình quản lý tác vụ

Nhược điểm của phương pháp:

  • Chỉ có 6 loại ưu tiên khả dụng

Phương pháp 3. Sử dụng tiện ích wmic.exe

Như hình trên, Task Manager và lệnh START khá khó xử trong việc gán mức độ ưu tiên. Hãy xem cách thực hiện linh hoạt hơn. Chúng tôi sẽ sử dụng wmic.exe .

Dấu nhắc lệnh:

wmic process where name="AppName" CALL setpriority ProcessIDLevel

Ví dụ:

wmic process where name="calc.exe" CALL setpriority 32768

hoặc

wmic process where name="calc.exe" CALL setpriority "above normal"

Ưu tiên (đặt trước):

  • nhàn rỗi:64
  • dưới mức bình thường:16384
  • bình thường:32
  • trên mức bình thường:32768
  • mức độ ưu tiên cao:128
  • thời gian thực:256
Lưu ý . Điều gì sẽ được thực hiện nếu có một số quy trình có cùng tên? Mức độ ưu tiên của một quá trình có thể được thay đổi bằng cách sử dụng cả tên của nó hoặc PID (Process ID).

Dưới đây là một ví dụ ngắn về việc chạy wmic.exe để lấy thông tin cần thiết.

Sử dụng lệnh này:

wmic process list brief

Lưu ý . Tôi sẽ không đưa ra ví dụ về việc chạy lệnh này vì danh sách các quy trình quá dài. Hãy tự mình làm nếu bạn muốn.

Bạn sẽ nhận được danh sách các quy trình chạy trên máy tính cục bộ của mình. Bây giờ hãy chạy lệnh này:

wmic process list brief | find "cmd.exe"

Đây là kết quả:

Quản lý ưu tiên quy trình trong Windows

Tôi đã cố tình bắt đầu một số bản sao của cmd.exe, để làm cho nó dễ minh họa hơn.

Bây giờ danh sách các quy trình được giới hạn cho những quy trình có tên “cmd.exe”. Chú ý đến PID của (các) quy trình.

Bây giờ, hãy thử chọn các quy trình cần thiết bằng WMI. Để làm điều đó, chỉ cần nhập:

wmic process where description='cmd.exe' list brief

Đây là kết quả:

Quản lý ưu tiên quy trình trong Windows

So sánh các kết quả. Hãy nhớ PID của CMD.EXE.

Chuỗi lệnh để bắt đầu wmic.exe

wmic process where processid='XXXX' CALL setpriority ProcessIDLevel

Bây giờ chúng ta có thể thay đổi mức độ ưu tiên của một quy trình cụ thể (e. G., PID =8476):

wmic process where processid='8476' CALL setpriority 32768

hoặc

wmic process where processid='8476' CALL setpriority "above normal"

Tiếp theo là gì? Suy nghĩ, thử, chọn và quản lý các ưu tiên của bạn để cải thiện hiệu suất của các dịch vụ và quy trình, cùng với trải nghiệm người dùng cuối.