|
|
|
|
|
""" |
|
|
Memory monitor for large model loading |
|
|
""" |
|
|
|
|
|
import psutil |
|
|
import time |
|
|
import logging |
|
|
|
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
def monitor_memory(interval=2): |
|
|
"""Monitor memory usage during model loading""" |
|
|
logger.info("π Starting memory monitor...") |
|
|
|
|
|
initial_memory = psutil.virtual_memory() |
|
|
logger.info(f"πΎ Initial memory: {initial_memory.available / (1024**3):.1f}GB available") |
|
|
|
|
|
try: |
|
|
while True: |
|
|
memory = psutil.virtual_memory() |
|
|
logger.info(f"π Memory: {memory.available / (1024**3):.1f}GB available " |
|
|
f"({memory.percent}% used)") |
|
|
time.sleep(interval) |
|
|
except KeyboardInterrupt: |
|
|
logger.info("π Memory monitoring stopped") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
monitor_memory() |