속도를 알 수 없는 네트워크 인터페이스

속도를 알 수 없는 네트워크 인터페이스

네트워크 인터페이스의 최대 처리량을 인쇄하려고 하면 다음 오류가 발생합니다.

$ cat /sys/class/net/<interface>/speed
cat: /sys/class/net/<interface>/speed: Invalid argument

회신하다. 제가 조사한 바에 따르면 이 속성은 get_link_ksettingsethtool 메소드를 구현하는 인터페이스에만 유효합니다(원천).

내 목표는 /proc/net/dev초당 보내고 받은 바이트 수를 가져온 다음(의사 파일 구문 분석) 처리량을 사용하여 사용률을 계산하여 각 인터페이스의 네트워크 사용률을 계산하는 것입니다. ioctl()속도를 알 수 없는 인터페이스에서는 성공할 수 없는 기능으로 최대 처리량을 달성하기 위해 C에서 이 작업을 수행하고 있습니다 .

속도 속성을 얻는 다른 방법이 있습니까? 제가 생각할 수 있는 가장 간단한 해결책은 인터페이스의 기본 속도가 표준 10Mbps이고 활용도가 100%를 초과하는 경우 최대 속도를 다음 표준 속도인 1000Mbps로, 1Gbps, 2.5Gbps, 10Gbps로 늘릴 수 있다는 것입니다. 이는 어떻게든 작동할 수 있지만 비표준 속도로 번들 인터페이스를 사용하면 문제가 발생할 수 있습니다. 예를 들어 두 개의 1Gbps 카드를 하나의 2Gbps로 묶습니다. 인터페이스를 번들링하는 것은 나에게 큰 문제가 아니지만 범용 솔루션이 있으면 좋을 것입니다.

관련 정보