Powershell
Cpu Affinity – Bir uygulamayı düşük kaynak tüketimi kullanacak şekilde ayarlama
Bu yazıda bir uygulamayı her koşulda düşük kaynak tüketimi kullanacak şekilde nasıl ayarlayabileceğimizi diğer bir ifade ile cpu affinity işlemini anlattım.
Daha anlaşılır olması için öncelikle senaryomuzu açıklayalım.
Bir uygulamanız var ve bu uygulamanın cpu’nun tüm corelarını kullanmasını istemiyoruz düşük sistem kaynağı kullanmasını istiyoruz.
Buna genel terminolojide Affinity (yakınlık) denir. Default olarak windows tüm processleri tüm cpu kaynaklarını kullanacak şekilde ayarlar.
Bu çalışma ile istediğimiz process’un bilgisayarın sadece istediğimiz cpu oranı kadar çalışmasını sağlayacağız.
Bu işlem için kullanacağımız base komut aşağıdaki gibi olacaktır.
1 |
ForEach($PROCESS in GET-PROCESS $myprocess.name) { $PROCESS.ProcessorAffinity=3} |
Bizim bu işi profosyonel şekilde çalıştırmak için kodumuz aşağıdaki gibi olacak.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#Get-Process msedge | fl ProcessorAffinity # Bu komut Uygulamanızın kullandığı Process Affinity gösterir $processname = "msedge" #Process adını buraya yazınız $setaffinity = 3 $myprocess = Get-Process -Name $processname if($myprocess.ProcessorAffinity -match $setaffinity){ Write-Host -ForegroundColor Yellow "Process Affinity istediğiniz koşulda çalışıyor" } Elseif ($myprocess.Responding -ne "True"){ Write-Host " $processname henüz çalıştırılmaış durumda" } Else{ ForEach($PROCESS in GET-PROCESS $myprocess.name) { $PROCESS.ProcessorAffinity=$setaffinity} Write-Host -ForegroundColor Green "Process Affinity istediğiniz koşula ayarlandı" } |