윈 도 우 특정 프로세스 메모리 제한 할수 있는 프로그램 있나요?
2024.07.27 10:55
검색해보니 프로그래머가 제작단계에서 하는거나 서버쪽에서 하는 방법들은 나오는데
유저단에서 하는건 못 찾아서요.. 게임할때 정상적인 경우 많이 먹으면 1~1.3기가 최대 정도인데
프로세스 먹통될땐 3기가까지 치고 올라가길레, 적당히 제한 걸어서 자동으로 프로세스 종료되게
하고 싶어서요...
댓글 [10]
-
YoungSS 2024.07.27 12:32
-
sadold 2024.07.27 13:15
구글에
Limit RAM Usage for a Program 검색해보세요
파워쉘로 할꺼면 위에 사람이 적은 것 처럼 다운받지 말고
파워쉘 기본 내장 명령어로도 메모리 제한할 수 있으니 그 방법을 쓰세요
참고로 마소 파워쉘 레퍼런스에 보면
위 파일로 실행하면 상황에 따라 메모리가 예약 상태가 항상 유지 되지 않는다고 나옵니다.
-
YoungSS 2024.07.27 13:23
파워쉘 어떤 내장 명령어가 특정프로세스 메모리량을 줄이고 고정하나요?
한번 적어 올려 보세요.
저 스크립트는 C# 코드의 SetProcessWorkingSetSizeEx() 펑션을 불러와서
작업을 한겁니다.
-
sadold 2024.07.27 13:34
명령어라고 했지 펑션이라고 안 했는데
왜 펑션얘기를 하는지는 모르겠지만, 이 사람은 늘 이렇지만
자기는 모르지만 남은 알고 있는 내용이 있으면 정중히 물어보던지
뭐 맨날 아니고 틀렸대, 무월님 댓글을 또 올려야 하나 정말...
Get-WmiObject Win32_Process 로 제한하는 명령이 있는 사이트를 방금 본거라 해보지는 않았음
-
YoungSS 2024.07.27 13:49
보니까 잘 모르시면서 단정짓듯 말씀을 하시는데,
SetProcessWorkingSetSizeEx() 는 kerne32.dll 안에 있는 윈도우 API 예요.
파워쉘 자체에 없기때문에 C# 코드를 짜서 파워쉘로 불러와서 실행해야 돼요.
님이 말한 Get-WmiObject Win32_Process 는
특정메모리 제한하는 파워쉘 내장명령어가 아니고
그냥 프로세서 정보만 확인하는 명령어예요.
본인이 확인도 안해보고 스크립트를 짜지도 못하면서 그러면 안돼죠.
-
선영 2024.07.27 14:04
먼가 어렵군요......정보들 감사합니다
-
치토스 2024.07.27 14:45
간단하게 제한하는 방법은 없다는 것만 알게됨...
-
YoungSS 2024.07.27 14:52
저 스크립트 명령어 실행은 간단해요.
실행관련 부연설명이 많아 어렵게 보일뿐입니다.
-
夕影 2024.07.27 15:13
process lasso 로 감시 규칙을 설정해 보세요 -
치토스 2024.07.27 18:05
등잔밑이 어둡다더니.. 이건 무슨 기능이지 하고 넘어갔던 ㅋㅋ
규칙추가 누르니 이렇게 뜨네요
파워쉘 스크립트인데, 유저단계에서 원하는 메모리 사용량으로 떨어트릴수 있고,
그용량으로 고정할수 있어요.
명령어 넣고 작업관리자에서 메모리양이 줄어드는걸 바로 확인할수 있어요.
https://github.com/guyrleech/Microsoft/blob/master/Trimmer.ps1
& .\Trimmer.ps1 -MaxWorkingSet 10MB -Processes vlc
& .\Trimmer.ps1 -MaxWorkingSet 10MB -Processes Everything
-HardMax 스위치를 넣으면 지정한 메모리 용량이내로 고정돼요.
& .\Trimmer.ps1 -MaxWorkingSet 25MB -HardMax -Processes firefox
프로그램의 원래 쓰던 메모리용량을 낮춰서 고정하면 일부기능에 이상이 생길수 있어서
-HardMax 스위치를 빼고 다시 지정해주면 자연스럽게 줄어들고 늘어나요.
& .\Trimmer.ps1 -MaxWorkingSet 35MB -Processes firefox
그리고 지정한 메모리 사용량이 넘었을때 바로 닫게하려면,
저기에서 VLC, 50MB 를 님껄로 바꾸고 해보세요.
(만약 파이어팍스, 엣지같은 브라우저면 동일이름의 프로세스가
여러개 열리기에 밑의 코드와는 약간 다르게 고쳐야 합니다.)