Win7에서 프로세스 또는 스레드의 I / O 우선 순위를 변경하는 방법은 무엇입니까?


32

프로세스 탐색기는 주어진 스레드의 유효 IO 우선 순위를 표시 할 수 있지만 변경하지는 않습니다. IO 우선 순위 지원은 비교적 새로운 기능이므로 대부분의 프로그램은 고유 한 IO 우선 순위를 설정하지 않습니다. 기본적으로 IO 우선 순위는 프로세스 우선 순위가 아닌 스레드 우선 순위에서 파생되며 프로세스 탐색기는 수정할 수 없습니다.

주어진 프로세스의 주어진 스레드 / 모든 스레드의 IO 우선 순위를 변경하는 데 도움이되는 다른 도구가 있습니까?



3
@ [Mehper C. Palavuzlar] 사실이지만, 이것은 제가 개발 한 소프트웨어를위한 것이 아닙니다. 타사 소프트웨어에서이 작업을 수행 할 수있는 기성 도구를 찾고 있습니다.
RomanSt

답변:


11

기성품 도구

수동 사용자 조치 또는 자동화 및 지속성으로 프로세스 I / O 우선 순위를 설정하는 써드 파티 도구 는 Process Lasso 입니다. 거의 모든 프로세스 설정을 설정할 수 있으며 지속적으로 또는 규칙으로 수행 할 수 있습니다 (예 : 이러한 경우 I / O 우선 순위 변경).

프로그램 답변

대답은 NT 네이티브 API 인 NTSetInformationProcess에 대한 간단한 API 호출 입니다. 2008 DDK에서 'IoPriority'클래스로 정의됩니다. NT6에서는 매우 낮음 (배경)과 보통의 두 가지 수준 만 지원됩니다 . 기술적으로 5 가지 수준 (위험, 높음, 보통, 낮음 및 매우 낮음)이 정의되어 있습니다. 위험 수준은 페이징 작업을 위해 예약되어 있습니다. 다른 사람에 대한 데이터가 없습니다.

그러나 I / O 우선 순위를 사용하는 올바른 방법은 PROCESSS_MODE_BACKGROUND_BEGIN을 제공 하는 Windows API SetProcessPriorityClass 호출을 통해 '백그라운드 모드'를 시작하는 것입니다. 이로 인해 IDLE CPU 우선 순위 클래스와 함께 매우 낮은 (배경) I / O 우선 순위가 사용됩니다. 완료되면 PROCESS_MODE_BACKGROUND_END를 통해 되돌립니다.

SetThreadPriority의 API는 특정 스레드에 대한이 같은 배경 모드를 허용합니다. 여기에는 THREAD_MODE_BACKGROUND_BEGIN / END가 제공됩니다.


나는 Windows 프로그래밍과 OS 레벨에 익숙하지 않지만 스레드의 우선 순위를 높이는 것에 대해 들었습니다. THREAD_PRIORITY_TIME_CRITICAL까지 프로그램이나 프로그램에서 가능합니까? 또는 여전히 스레드 CPU 우선 순위가 아닌 조정할 수있는 IO PRIORITY 만입니까? IO 우선 순위를 변경해도 CPU 사용량에 큰 차이가없는 것 같습니다.
barlop

예. 둘 다 설정하고 유지할 수 있습니다. 다른 많은 것들도 설정되거나 규칙에 따라 동적으로 변경 될 수 있습니다 (예 : CPU 선호도). I / O 우선 순위는 CPU 우선 순위와 다릅니다.
dyasta

"타사 소프트웨어에서이를 수행 할 수있는 기성 도구"는 아닙니다.
Cees Timmerman

죄송합니다. 프로그램 측면 (편집되지 않음)에서 명확하게 대답했기 때문에 질문이 편집 된 것 같습니다. Process Lasso는 '타사 소프트웨어에서이 작업을 수행 할 수 있도록 준비된 도구'입니다. bitsum.com
dyasta

23

아무도 신경 쓰지 않고 이것을 개발했습니다 : https://sourceforge.net/projects/iopriority/ (오픈 소스)

이 프로그램은 프로세스의 I / O 우선 순위를 설정할 수 있으며 모든 스레드가 즉시 영향을받습니다. 프로세스 대신 스레드로 작업하도록 수정하는 것은 매우 쉽습니다.


1
방금 Server 2012R2에서 프로세스를 우선 순위로 변경하도록 허용하지 않는 것으로 나타났습니다.
jftuga

14

ProcessHacker 는 임의 프로세스의 IO 우선 순위를 변경할 수있는 GUI 도구입니다.


왜 루시 노비 치가 한 것처럼 보입니까?
Daniel Mošmondor

1
@ DanielMošmondor 아마도 ProcExp와 그 한계에서 영감을 받았을까요? ProcExp 버전 14 이후 랩톱에서 CPU 사용이 완전히 잘못 표시되어 개인적으로 전환했습니다.
RomanSt

1
뿐만 아니라 ProcExp도 내 광고 등을 BSOD 할 수있었습니다. 무료입니까?
Daniel Mošmondor

@ DanielMošmondor 네, 게다가 실제로 모든면에서 ProcExp보다 더 많은 일을하는 것 같습니다. UI가 약간 다르지만 실제로는 매우 기능적입니다.
RomanSt

1

PRIO라는 무료 앱의 일부입니다. PRIO는 매우 작은 (1MB 미만) 풋 프린트를 가진 프로세스 우선 순위 보호기입니다. 설치 후 필요할 때까지 백그라운드에서 자동으로 실행되며 인터페이스는 Windows 작업 관리자에 직접 빌드되어 기능을 확장하고 추가 된 기능이 항상 작업 관리자의 일부인 것처럼 만듭니다. 작업 관리자에서 우선 순위를 변경하려는 의도로 프로세스를 마우스 오른쪽 버튼으로 클릭하면 프로세스의 CPU 우선 순위뿐만 아니라 I / O 우선 순위도 변경할 수 있으므로 PRIO의 추가 기능 중 일부가 명확 해집니다 원하는 경우 새 설정을 저장하도록 선택할 수 있습니다. 마지막으로 프로세스 (즉, 해당 프로그램)가 실행될 때마다 CPU 및 I / O 프로세스 우선 순위가 설정되어 저장됩니다.

이 앱에는 Windows 작업 관리자의 다양한 탭 기능을 확장하는 다른 기능이 있습니다. 32 비트 및 64 비트 시스템 용 버전이 있으며이 앱은 개인 용도로 무료입니다.


훌륭한 앱인 것 같습니다. 링크가 있습니까?
Stijn de Witt

1
당신이 PRIO을 의미하는 경우 (CNET을 같은) 다른 콘텐츠 애그리 게이터의 숫자에서 사용할 수 있지만, 직접 개발자의 웹 사이트에서 것이다 prnwatch.com/prio
마이크 Mounier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.