Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

จัดการลำดับความสำคัญของกระบวนการใน Windows

มาพูดถึงลำดับความสำคัญของกระบวนการ Windows . ในกรณีส่วนใหญ่ ไม่จำเป็นต้องคิดเกี่ยวกับการตั้งค่าลำดับความสำคัญของกระบวนการที่กำหนดเอง แต่บางครั้งผู้ดูแลระบบที่มีคุณสมบัติเหมาะสมสามารถช่วยระบบจัดสรรเวลาตัวประมวลผลระหว่างงานที่กำลังทำงานได้ดียิ่งขึ้น จำเป็นเมื่อใด ตัวอย่างเช่น บนแอปพลิเคชันเซิร์ฟเวอร์ คุณสามารถให้เวลา CPU มากขึ้นสำหรับแอปพลิเคชันและเซิร์ฟเวอร์ SQL เนื่องจากเป็นกระบวนการที่มีความสำคัญต่อทรัพยากรมากที่สุด

โดยทั่วไป คุณสามารถดูและเปลี่ยนลำดับความสำคัญของกระบวนการได้โดยใช้ตัวจัดการงาน (someprocess.exe -> ตั้งค่าลำดับความสำคัญ)

Windows NT/2000/7/2008

จัดการลำดับความสำคัญของกระบวนการใน Windows

ใน Windows Server 2012 การตั้งค่าเหล่านี้จะอยู่ในแท็บรายละเอียด

จัดการลำดับความสำคัญของกระบวนการใน Windows

ดังที่คุณเห็นจากสแนปชอตเหล่านี้ มีลำดับความสำคัญเพียง 6 ประเภท (ดังที่จะอธิบายในภายหลัง นี่คือ ลำดับความสำคัญ ) สามารถใช้ได้ เพียงพอหรือไม่ Microsoft คิดว่าใช่ แต่ขอให้จำคำพูดที่ยิ่งใหญ่ของ Bill Gates ผู้ซึ่งบอกว่า "แรม 640 KB เพียงพอสำหรับทุกคน" แต่เวลาได้แสดงให้เห็นแล้วว่าห่างไกลจากกรณี :)

มาดูกันว่ามันหน้าตาเป็นอย่างไร

ที่จริงแล้ว Windows มีลำดับความสำคัญ 32 ระดับตั้งแต่ 0 ถึง 31

โดยจัดกลุ่มดังนี้:

  1. 31 — 16 เป็นระดับตามเวลาจริง
  2. 15 — 1 เป็นระดับไดนามิก
  3. 0 เป็นระดับระบบที่สงวนไว้สำหรับเธรดที่ไม่มีหน้า

เมื่อกระบวนการถูกสร้างขึ้น จะได้รับมอบหมาย ระดับความสำคัญ . ให้เป็นหนึ่งในหก :

  1. คลาสเรียลไทม์ (ค่า 24),
  2. ชั้นสูง (ค่า 13),
  3. เหนือระดับปกติ (ค่า 10),
  4. คลาสปกติ (ค่า 8)
  5. ต่ำกว่าคลาสปกติ (ค่า 6)
  6. หรือคลาสว่าง (ค่า 4).

ตามที่กล่าวไว้ข้างต้น คุณสามารถดูลำดับความสำคัญของกระบวนการได้โดยใช้ตัวจัดการงาน

หมายเหตุ . ลำดับความสำคัญที่สูงกว่าปกติและต่ำกว่าปกติปรากฏขึ้นครั้งแรกใน Windows 2000

ลำดับความสำคัญของแต่ละเธรด (พื้นฐาน ลำดับความสำคัญของเธรด ) ประกอบด้วยลำดับความสำคัญของกระบวนการและ ลำดับความสำคัญสัมพัทธ์ ของด้ายนั้นเอง ลำดับความสำคัญสัมพัทธ์ของเธรดมีเจ็ดประเภท:

  • ปกติ:เหมือนกับกระบวนการที่มี
  • เหนือปกติ:+1 ให้กับลำดับความสำคัญของกระบวนการ
  • ต่ำกว่าปกติ:-1 จากลำดับความสำคัญของกระบวนการ
  • สูงสุด:+2;
  • ต่ำสุด:-2;
  • เวลาวิกฤติ:ตั้งค่าลำดับความสำคัญปัจจุบันของเธรดเป็น 31 สำหรับคลาสเรียลไทม์ และ 15 สำหรับคลาสที่เหลือ
  • ไม่ได้ใช้งาน:ตั้งค่าลำดับความสำคัญปัจจุบันของเธรดเป็น 16 สำหรับคลาสเรียลไทม์ และ 1 สำหรับคลาสที่เหลือ

ตารางต่อไปนี้แสดงลำดับความสำคัญของกระบวนการ ลำดับความสำคัญที่เกี่ยวข้องและปัจจุบันของเธรด

ลำดับความสำคัญของเธรด คลาสของกระบวนการ คลาสของกระบวนการ
คลาสว่าง ต่ำกว่าคลาสปกติ คลาสปกติ เหนือระดับปกติ ชั้นสูง คลาสเรียลไทม์
1 ไม่ได้ใช้งาน ไม่ได้ใช้งาน ไม่ได้ใช้งาน ไม่ได้ใช้งาน ไม่ได้ใช้งาน
2 ต่ำสุด
3 ด้านล่าง …
4 คลาสว่าง ปกติ ต่ำสุด
5 เหนือ … ด้านล่าง …
6 ต่ำกว่าคลาสปกติ สูงสุด ปกติ ต่ำสุด
7 เหนือ … ด้านล่าง …
8 คลาสปกติ สูงสุด ปกติ ต่ำสุด
9 เหนือ … ด้านล่าง …
10 เหนือระดับปกติ สูงสุด ปกติ
11 เหนือ … ต่ำสุด
12 สูงสุด ด้านล่าง …
13 ชั้นสูง ปกติ
14 เหนือ …
15 สูงสุด
15 เวลาวิกฤติ เวลาวิกฤติ เวลาวิกฤติ เวลาวิกฤติ เวลาวิกฤติ
16 ไม่ทำงาน
17
18
19
20
21
22 ต่ำสุด
23 ด้านล่าง …
24 คลาสเรียลไทม์ ปกติ
25 เหนือ …
26 สูงสุด
27
28
29
30
31 เวลาวิกฤติ

จะเริ่มต้นกระบวนการด้วยลำดับความสำคัญที่ไม่ได้มาตรฐานหรือเปลี่ยนแปลงได้อย่างไร

วิธีที่ 1 เริ่มงาน/กระบวนการและเปลี่ยนลำดับความสำคัญโดยใช้ตัวจัดการงาน

ข้อเสียของวิธีการ:

  • จัดลำดับความสำคัญได้เพียง 6 ประเภท
  • ลำดับความสำคัญจะเปลี่ยนแปลงด้วยเมาส์ของคุณและคุณไม่สามารถทำให้เป็นแบบอัตโนมัติได้

วิธีที่ 2 คุณสามารถใช้คำสั่ง START กับคีย์ที่เกี่ยวข้อง

คีย์ที่ใช้ได้ซึ่งรับผิดชอบการจัดลำดับความสำคัญมีดังนี้ (ฉันจงใจละเว้นคีย์ของ START คำสั่งซึ่งไม่เกี่ยวข้องกับกระบวนการกำหนดลำดับความสำคัญที่อธิบายไว้):

C:\>start /?
เริ่มหน้าต่างแยกต่างหากเพื่อเรียกใช้โปรแกรมหรือคำสั่งที่ระบุ
START [“title”] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /แชร์]
[/LOW | /ปกติ | /สูง | /เรียลไทม์ | /ABOVENORMAL | /BELOWNORMAL]
[/NODE ] [/AFFINITY ] [/WAIT] [/B]
[command/program] [parameters]
ต่ำ       เริ่มแอปพลิเคชันในคลาสลำดับความสำคัญ IDLE
NORMAL     เริ่มการสมัครในคลาสที่มีลำดับความสำคัญ NORMAL
HIGH       เริ่มแอปพลิเคชันในคลาสที่มีลำดับความสำคัญสูง
REALTIME   เริ่มแอปพลิเคชันในคลาสลำดับความสำคัญ REALTIME
ABOVENORMAL เริ่มแอปพลิเคชันในคลาสลำดับความสำคัญ ABOVENORMAL
BELOWNORMAL เริ่มแอปพลิเคชันในคลาสลำดับความสำคัญ BELOWNORMAL

ดังที่เราเห็น คำสั่ง START อนุญาตให้เรียกใช้กระบวนการที่มีลำดับความสำคัญ 6 อย่างที่มีอยู่ในตัวจัดการงาน

ข้อเสียของวิธีการ:

  • จัดลำดับความสำคัญได้เพียง 6 ประเภท

วิธีที่ 3 การใช้ยูทิลิตี้ wmic.exe

ดังที่แสดงไว้ข้างต้น คำสั่ง Task Manager และ START ค่อนข้างไม่สะดวกในการกำหนดลำดับความสำคัญ เรามาดูวิธีการทำที่คล่องตัวมากขึ้น เราจะใช้ wmic.exe .

พรอมต์คำสั่ง:

wmic process where name="AppName" CALL setpriority ProcessIDLevel

ตัวอย่าง:

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

หรือ

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

ลำดับความสำคัญ (ที่ตั้งไว้ล่วงหน้า):

  • ว่าง:64
  • ต่ำกว่าปกติ:16384
  • ปกติ:32
  • สูงกว่าปกติ:32768
  • ลำดับความสำคัญสูง:128
  • เรียลไทม์:256
หมายเหตุ . จะทำอย่างไรถ้ามีหลายกระบวนการที่มีชื่อเดียวกัน? ลำดับความสำคัญของกระบวนการสามารถเปลี่ยนแปลงได้โดยใช้ทั้งชื่อหรือ PID (Process ID)

นี่คือตัวอย่างสั้นๆ ของการรัน wmic.exe เพื่อรับข้อมูลที่จำเป็น

ใช้คำสั่งนี้:

wmic process list brief

หมายเหตุ . ฉันจะไม่ยกตัวอย่างการรันคำสั่งนี้เนื่องจากรายการกระบวนการยาวเกินไป ทำมันเองถ้าคุณต้องการ

คุณจะได้รับรายการกระบวนการที่ทำงานบนคอมพิวเตอร์ของคุณ รันคำสั่งนี้:

wmic process list brief | find "cmd.exe"

นี่คือผลลัพธ์:

จัดการลำดับความสำคัญของกระบวนการใน Windows

ฉันตั้งใจเริ่ม cmd.exe หลายชุดเพื่อให้เห็นภาพชัดเจนยิ่งขึ้น

ตอนนี้รายการกระบวนการจำกัดเฉพาะผู้ที่มี “cmd.exe” อยู่ในชื่อ ให้ความสนใจกับ PID ของกระบวนการ

ตอนนี้เรามาลองเลือกกระบวนการที่จำเป็นโดยใช้ WMI โดยป้อน:

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

นี่คือผลลัพธ์:

จัดการลำดับความสำคัญของกระบวนการใน Windows

เปรียบเทียบผลลัพธ์ จำ PID ของ CMD.EXE

สตริงคำสั่งเพื่อเริ่ม wmic.exe

wmic process where processid='XXXX' CALL setpriority ProcessIDLevel

ตอนนี้เราสามารถเปลี่ยนลำดับความสำคัญของกระบวนการเฉพาะได้ (เช่น PID=8476):

wmic process where processid='8476' CALL setpriority 32768

หรือ

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

อะไรต่อไป? คิด ลอง เลือกและจัดการลำดับความสำคัญของคุณเพื่อปรับปรุงประสิทธิภาพของบริการและกระบวนการ ร่วมกับประสบการณ์ของผู้ใช้ปลายทาง