网络和磁盘I/O状态监控
项目描述
度量学
以兆字节每秒为单位监控和记录网络和磁盘统计信息。
安装
pip install iometrics
用法
Pytorch-lightning集成
from pytorch_lightning import Trainer
from iometrics.pytorch_lightning.callbacks import NetworkAndDiskStatsMonitor
net_disk_stats = NetworkAndDiskStatsMonitor()
trainer = Trainer(callbacks=[net_disk_stats])
生成的度量
- network/recv_MB_per_sec – 所有相关网络接口接收MB/s的总和。
- network/sent_MB_per_sec – 所有相关网络接口发送MB/s的总和。
- disk/util% – 所有磁盘设备的磁盘利用率百分比的平均值。
- disk/read_MB_per_sec – 所有磁盘设备的磁盘读取MB/s的总和。
- disk/writ_MB_per_sec – 所有磁盘设备的写入MB/s之和。
- disk/io_read_count_per_sec – 所有磁盘设备的每秒读取I/O操作数之和。
- disk/io_writ_count_per_sec – 所有磁盘设备的每秒写入I/O操作数之和。
屏幕截图
纯Python实现(无依赖)
快速检查
python -c 'from iometrics.example import usage; usage()'
示例输出
| Network (MBytes/s) | Disk Util | Disk MBytes | Disk I/O |
| Received | Sent | % | MB/s Read | MB/s Written | I/O Read | I/O Write |
| val | avg | val | avg | val | avg | val | avg | val | avg | val | avg | val | avg |
| ------:| ------:| -----:| -----:| ---:| ---:| ------:| ------:| -----:| -----:| ------:| ------:| ---:| ---:|
| 4.6 | 3.5 | 0.1 | 0.1 | 49 | 2 | 52.8 | 1.1 | 0.0 | 0.9 | 211 | 4 | 5 | 18 |
| 4.1 | 3.5 | 0.1 | 0.1 | 61 | 3 | 60.4 | 2.4 | 40.3 | 1.7 | 255 | 10 | 149 | 21 |
完整代码
import time
from iometrics import NetworkMetrics, DiskMetrics
from iometrics.example import DUAL_METRICS_HEADER
net = NetworkMetrics()
disk = DiskMetrics()
for i in range(100):
time.sleep(1)
net.update_stats()
disk.update_stats()
if i % 15 == 0:
print(DUAL_METRICS_HEADER)
row = (
f"| {net.mb_recv_ps.val:6.1f} | {net.mb_recv_ps.avg:6.1f} "
f"| {net.mb_sent_ps.val:5.1f} | {net.mb_sent_ps.avg:5.1f} "
f"| {int(disk.io_util.val):3d} | {int(disk.io_util.avg):3d} "
f"| {disk.mb_read.val:6.1f} | {disk.mb_read.avg:6.1f} "
f"| {disk.mb_writ.val:5.1f} | {disk.mb_writ.avg:5.1f} "
f"| {int(disk.io_read.val):4d} | {int(disk.io_read.avg):4d} "
f"| {int(disk.io_writ.val):3d} | {int(disk.io_writ.avg):3d} "
f"|"
)
print(row)
在Docker容器中运行
容器无法访问宿主机的网络统计信息,因此需要此解决方案。
# on the host machine (not inside the container)
iometrics replicate proc &
在主机上运行上述脚本后,应将/host/proc/net/dev
挂载到容器中。例如
docker run -it -v "/tmp/proc_net_dev:/host/proc/net/dev:ro" <YOURIMAGE>
贡献
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
iometrics-0.0.8.tar.gz (14.5 kB 查看哈希值)
构建分布
iometrics-0.0.8-py3-none-any.whl (16.6 kB 查看哈希值)
关闭
iometrics-0.0.8.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dc0998cf6173d5ca2355a926a018cc213aa1c548d81929207c7f025a13cd2c98 |
|
MD5 | 073d4b0154027397d741f24403d93cfd |
|
BLAKE2b-256 | 353a381e66b97ec120c89143ed1236499e51fca6d5cda6ae96f42efe73966b04 |
关闭
iometrics-0.0.8-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eba1f6f23204ea29aff74423c9895dc2fa41752e0cc76afc8eb84e7b3d362655 |
|
MD5 | 2e64e2020b3c123550232cbfa68dadfa |
|
BLAKE2b-256 | b573277f00b90962df7a480014eebcd2243184c2da42c34b7616126536b76867 |