A wrapper for iostat that displays I/O statistics in a real-time chart format
Project description
ioload
A wrapper for iostat that displays I/O statistics in a real-time chart format similar to nload, with the ability to switch between devices using keyboard navigation.
🎯 Features
- Real-time visualization - Live I/O statistics with smooth updates
- Multiple chart views - IOPS, Throughput, Utilization, and Wait Times
- Keyboard navigation - Switch devices and views with arrow keys
- Color-coded charts - Easy-to-read terminal charts with color support
- Cross-platform - Works on Linux and macOS (Unix-like systems)
- Lightweight - Minimal dependencies, fast startup
Features
- Real-time I/O statistics visualization
- Multiple charts showing:
- Read/Write IOPS (requests per second)
- Read/Write Throughput (KB/s)
- Device Utilization (%)
- Average wait times
- Switch between devices using
<(previous) and>(next) keys - Clean, terminal-based interface using curses
Used by
- Ring.cr
Sponsored by
- Ring.cr
Requirements
- Python 3.6+
iostatcommand (part ofsysstatpackage)- On macOS:
brew install sysstat - On Linux: Usually pre-installed or available via package manager
- On macOS:
asciichartpyPython library for chart rendering- Install with:
pip install asciichartpy
- Install with:
Installation
Quick Install (Recommended)
curl -fsSL https://raw.githubusercontent.com/guntanis/ioload/main/scripts/install.sh | bash
Manual Installation
See docs/INSTALL.md for detailed manual installation instructions.
Usage
./ioload.py
Or:
python3 ioload.py
You can specify a custom refresh interval (in seconds):
./ioload.py -i 0.5 # Refresh every 0.5 seconds
./ioload.py --interval 2.0 # Refresh every 2 seconds
Controls
Left Arrowor<: Switch to previous deviceRight Arrowor>: Switch to next deviceUp Arrow: Switch to previous chart viewDown Arrow: Switch to next chart viewQ: Quit the application
How it works
The tool continuously runs iostat -x in the background to collect I/O statistics for all block devices. It maintains a rolling history of the last 60 data points and displays them as ASCII charts in real-time.
The charts show:
- Read/Write IOPS: Combined visualization of read and write requests per second
- Read/Write Throughput: Combined visualization of read and write data transfer rates
- Utilization: Device utilization percentage over time
📸 Screenshots
(Add screenshots or animated GIFs here showing ioload in action)
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by
nloadandhtop - Uses
asciichartpyfor beautiful terminal charts - Built with Python's
curseslibrary
📁 Project Structure
ioload/
├── docs/ # Additional documentation
├── scripts/ # Installation scripts
├── tests/ # Test files
└── ioload.py # Main application
See PROJECT_STRUCTURE.md for details.
📚 Related Projects
⭐ Star History
If you find this project useful, please consider giving it a star on GitHub!
Made with ❤️ by the ioload contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ioload-1.0.0.tar.gz.
File metadata
- Download URL: ioload-1.0.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d417e9419dddd6a72ebe739dbc54db6b7a68de56c2bbc06e8c86ea2a548e2e5
|
|
| MD5 |
dfb78d47bded4dfe3f32a22085f783d4
|
|
| BLAKE2b-256 |
6aeec0db573e8e1db12d1a0bfef77ecc7ca122307de9c2b5377c2420b4c0efff
|
File details
Details for the file ioload-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ioload-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfee14ff0fe7885069be02f79ef3a907eecb6aa9c61933035c0a4735a722a2ae
|
|
| MD5 |
610d4b67c0f6c969aea00ddbbab9ff0b
|
|
| BLAKE2b-256 |
67b82904ca2da84021af5dc62ed42e259ceb6af6bb81f050de437491d8c340f1
|