ss가 곧 조인 테이블에 대해 동일한 유형의 데이터를 반환하는데 /proc/net/tcp를 읽는 데 시간이 오래 걸리는 이유는 무엇입니까?

ss가 곧 조인 테이블에 대해 동일한 유형의 데이터를 반환하는데 /proc/net/tcp를 읽는 데 시간이 오래 걸리는 이유는 무엇입니까?

Linux 2.6.32에서 로드가 매우 많은 시스템(예: 웹 서버)에서 /proc/net/tcp를 읽는 경우(예: cat) 100K 항목을 읽는 데 30초 이상이 소요됩니다. 오랜만이네요.

뒤에서 무슨 일이 일어나는가? 잠금이 발생하고 있나요?

많은 사람들이 "ss" 명령의 속도를 언급했습니다. 'cat /proc/net/tcp' 또는 'netstat'이 수행하지 않는 작업 중 'ss' 명령이 수행하는 작업이 더 빨라지나요?

답변1

ss소켓 계층을 사용하여 AF_NETLINK커널과 대화합니다. 이는 낮은 수준의 프로토콜이지만 데이터를 큰 단위로 빠르게 전송할 수 있습니다. CentOS 7의 빠른 표시는 strace전송 창을 1Mb로 설정합니다.

관련 정보