32 lines
966 B
Python
32 lines
966 B
Python
import os
|
|
import psutil
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def set_cpu_affinity():
|
|
try:
|
|
process = psutil.Process()
|
|
cpu_count = os.cpu_count()
|
|
logger.info(f"System has {cpu_count} CPU cores")
|
|
if cpu_count >= 4:
|
|
affinity_cores = [cpu_count - 2, cpu_count - 1]
|
|
elif cpu_count >= 2:
|
|
affinity_cores = [cpu_count - 1]
|
|
else:
|
|
affinity_cores = [0]
|
|
|
|
process.cpu_affinity(affinity_cores)
|
|
logger.info(f"CPU affinity set to cores: {affinity_cores}")
|
|
|
|
if os.name == "nt": # Windows
|
|
process.nice(psutil.HIGH_PRIORITY_CLASS)
|
|
logger.info("Process priority set to HIGH")
|
|
else: # Linux/Unix
|
|
process.nice(-10) # Higher priority (lower nice value)
|
|
logger.info("Process nice value set to -10 (high priority)")
|
|
|
|
except Exception as e:
|
|
logger.warning(f"Failed to set CPU affinity: {e}")
|