A high-performance, real-time system monitoring tool with an interactive terminal user interface. Monitor CPU, memory, network, processes, and system information with smooth updates and responsive controls.
- 🚀 Real-time system metrics monitoring
- 💻 Per-core CPU usage and temperature tracking
- 🧮 Memory and swap usage visualization
- 🌐 Network bandwidth monitoring with rate smoothing
- 📊 Process management with detailed statistics
- ⚡ Asynchronous architecture for optimal performance
- 🎯 Interactive process control (kill, sort)
- 📱 Responsive terminal UI with automatic resizing
- Python 3.12+
- Linux/Unix-based system
Required packages:
- psutil>=5.9.0
- aiofiles>=24.1.0
- Clone the repository:
git clone https://github.com/Hillary520/python_system_monitor.git
cd python_system_monitor
- Create a virtual environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
Run the monitor:
python3 run_monitor.py
↑
/↓
: Navigate process listk
: Kill selected processq
: Quitr
: Refresh displayF5
: Force refresh
The project includes a stress test script to verify monitoring capabilities:
chmod +x stress_test.sh
./stress_test.sh
- Async Core: Built on Python's asyncio for non-blocking operations
- Modular Design: Separate monitors for different system aspects
- Optimized Updates: Variable refresh rates per component
- Resource Efficient: Minimal CPU/Memory footprint
python_system_monitor/
├── src/
│ └── python_system_monitor/
│ ├── monitors/
│ │ ├── cpu_monitor.py
│ │ ├── memory_monitor.py
│ │ ├── network_monitor.py
│ │ ├── process_monitor.py
│ │ └── system_info.py
│ ├── ui/
│ │ └── ui_handler.py
│ └── main.py
├── stress_test.sh
├── run_monitor.py
├── requirements.txt
└── README.md
To run tests:
pytest tests/ --cov=python_system_monitor
This project was created to provide a modern, efficient system monitoring solution with a focus on performance and user experience.