작업 관리자를 통해 프로세스 우선 순위를 수동으로 변경하지 않고 낮은 우선 순위로 자동 시작되도록 Windows 서비스 프로세스 (예 : squidNT, SQL Server 등)를 구성하는 방법이 있습니까?
작업 관리자를 통해 프로세스 우선 순위를 수동으로 변경하지 않고 낮은 우선 순위로 자동 시작되도록 Windows 서비스 프로세스 (예 : squidNT, SQL Server 등)를 구성하는 방법이 있습니까?
답변:
서비스 시작 / 중지를 처리하는 Service Control Manager에는 시작 프로세스의 우선 순위를 지정하는 메커니즘 (이전의 Windows 버전)이 없습니다.
이미 실행중인 프로세스에서 우선 순위를 수정할 수 있으므로 도구를 사용하여이를 수행하는 것이 가장 좋습니다.
프로세스 우선 순위를 수정하는 Microsoft 명령 줄 도구를 모르지만 http://www.teamcti.com/pview/prcview.htm에 있는 "PV"명령 줄도 우선 순위를 설정하는 기능이 있습니다. .
pv -pb process-name.exe
"process-name.exe"를 "보통 아래"우선 순위로 설정합니다.
프로세스가 변경 될 때까지 프로세스가 "정상"우선 순위에서 시작하여 진행할 수있는 경우, "예약 된 작업"으로 실행되는 스크립트를 사용하여 자주 실행되도록 할 수 있습니다 (서비스가 도착하는 경우) 바운스).
빠르고 더러운 해킹이지만, 일을 끝내는 빠르고 더러운 해킹에 많은 행운이 있습니다!
위의 답변은 저에게 효과적이지 않았습니다. 다음 powershell 스크립트 작성을 종료했습니다.
ChangePriority.ps1
Get-WmiObject Win32_process -Filter 'name="ProcessName.exe"' | ForEach-Object {$_.SetPriority(128)}
그런 다음 5 분마다 호출하는 예약 된 작업을 만들었습니다. 에서 관리자 프롬프트 또는 배치 스크립트 :
schtasks /Create /tn "Process Priority Change" /sc MINUTE /mo 5 /ru SYSTEM /tr "powershell -noprofile -executionpolicy bypass -file \"%cd%\ChangePriority.ps1\""
파일에 의존하지 않고 예약 된 작업이 실패하도록 여기 에서 wmic설명한대로 사용하려고 했습니다. powershell 스크립트를 사용하는 것과 비슷한 점 : 인라인 스크립트로 작업을 만드는 단일 명령을 만들 수 없었습니다. 당신이 그것을하고 다른 답변을 추가하면 감사합니다.
powershell 스크립트의 우선 순위 값은 여기에서 찾을 수 있습니다 [1].
다음도 작동 할 수 있습니다. ImagePath 레지스트리 키를 편집하고 cmd.exe의 start 명령을 사용하십시오.
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
ImagePath이 Windows 서비스의 인터페이스를 존중해야하기 때문에 전혀 작동 start하지 않으며이를 실행하거나 실행중인 실행 파일로 라우팅하지 않습니다.
팀 시티가 CPU를 덜 사용하게하려면 그렇게해야했습니다. 그리고 팀 시티가 우리가 실행하는 유일한 자바 앱이기 때문에 그 솔루션은 완벽하게 작동합니다.
서비스를 시작하는 배치 파일을 작성하고 다음과 같이 우선 순위를 낮추십시오.
net start tcbuildagent
net start teamcity
wmic 프로세스 여기서 name = "java.exe"CALL setpriority는 "보통"입니다.
다른 서비스 시작을 방해하지 않도록 TaskScheduler 트리거를 1 분 지연으로 구성했습니다.
추신 : 또한 모든 서비스 시작을 수동으로 설정하고 해당 배치 파일을 사용하여 원하는 순서대로 모든 서비스를 시작할 수 있습니다! SQL, IIS 등