对于基准测试,我目前正在寻找一种方法来对一些似乎有问题的TCP连接进行基准测试。为此,我想在程序运行时记录一些性能指标。我已经记录了每个操作的时间,但是这只是告诉我传输对于用例来说太长了。
我需要的是一种简单的方法来跟踪定期读取/写入的字节数。通常我会手动添加基准测试,但是套接字是在库中使用的,所以我不能轻松地检测读/写调用。我的猜测是linux提供的一些现成的方法可以做到这一点,但我找不到它。
我已经研究了使用TCP_INFO标志的getsockopt()的可能性,但从文档中我只能看到如何从中获取窗口大小等信息,而不是读取/写入的字节数。
有没有办法从Linux上获取这些信息?
发布于 2015-01-09 00:03:02
不确定您是否正在查看套接字,或者是否需要计算给定接口上的RX/TX字节的总量。我需要解决后一个问题,我提供了可能对您有用的以下脚本:
while true; do MARKER=$(ifconfig eth0 | grep "[RT]X bytes" | awk '{print $2}' | cut -c 7-); sleep 10; NEWMARKER=$(ifconfig eth0 | grep "[RT]X bytes" | awk '{print $2}' | cut -c 7-); expr ${NEWMARKER} - ${MARKER}; set $MARKER=$NEWMARKER; done请注意,对我来说,接收的字节数实际上是唯一重要的值,如果需要,可以将其用作模板来提取发送的字节。
将休眠值更改为所需的任何时间间隔(以秒为单位),如果需要,请重定向到文件。
https://stackoverflow.com/questions/21937162
复制相似问题