
나는 Debian 9 서버의 네트워크 작업량을 분석하여 가능한 네트워크 과부하를 감지하고 싶습니다.
제가 분석해야 할 주요 지표는 다음과 같습니다.
- CPS(초당 연결 수)
- 처리량
Linux 내에서 이러한 측정항목을 얻을 수 있는 방법이 있습니까?
CPS 측정항목은 conntrack 연결 이벤트를 통해 어떻게든 얻을 수 있다고 생각했지만 NEW
이것이 가장 적절한 방법인지는 확실하지 않았습니다.
뻔하다면 죄송합니다.
추신: 이 서버는 로컬 트래픽뿐만 아니라 많은 트래픽을 전달합니다.
답변1
네이티브 Linux API를 기반으로 이러한 측정항목의 출처를 설명하는 것으로 충분하다고 생각합니다.
처리량
그런데,처리량일반적으로 측정항목은 뭔가입니다.외부테스트 개체(당신이 말하는 OS Linux)와 관련하여. 즉, 대략적으로 말하면 두 개의 호스트(예: 클라이언트와 서버)가 있고 그 사이에 테스트 개체가 있습니다. 클라이언트와 서버 간의 네트워크 트래픽을 차단하고 테스트 개체의 (경계) 처리량을 기록합니다(예:아이퍼프).
그러나 OS Linux 내에서 처리량을 측정할 수 있는 간단한 방법은 인터페이스별로만 가능합니다.
그러니까 그냥 지켜봐도 돼/proc/net/dev
그리고 계산초당 델타 바이트:
sh-tst# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 87016202 715723 0 0 0 0 0 0 87016202 715723 0 0 0 0 0 0
eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 246415305 2899662 0 132906 0 0 0 230 5466117 19016 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CPS
CPS 측정항목도 마찬가지입니다. 기본적으로 이는 외부 측정입니다. 그러나 Linux 내에서는 다음을 기반으로 계산을 시도할 수 있습니다 /proc/net/stat/ip_conntrack
.
sh-tst# cat /proc/net/stat/ip_conntrack
entries searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error expect_new expect_create expect_delete search_restart
000000f8 00001742 0003142f 0001e85a 00000079 00021333 0001e6cf 00003a3d 00003bc5 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00002389 0005f1a0 0003b6f3 00000085 0004286f 0003b59e 00003cea 00003e3f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 000002c0 00037a77 00000714 00000000 000382cb 00000825 00000724 00000616 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00000225 00026cf9 00000271 00000000 00026e48 00000348 000002bd 000001e6 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
에서lnstat(8)
남성:
/proc/net/stat/ip_conntrack, /proc/net/stat/nf_conntrack Conntrack 관련 카운터. ip_conntrack은 이전 사용자 공간과의 하위 호환성만을 위한 것이며 nf_conntrack과 동일한 데이터를 표시합니다.
...
이전에는 예상하지 못했던 새로운 conntrack 항목이 추가되었습니다.
Linux 연결 추적에서:
NEW - 패킷이 새로운 연결을 시작했거나 양방향으로 패킷을 보지 못한 연결과 연관되어 있음을 의미합니다.
그래서 계산하고 싶은 것 같습니다.new
초당 델타.
더 읽어보세요:
답변2
sysstat와 함께 제공되는 sar 명령은 두 가지를 모두 수행합니다.
초당 연결을 모니터링하려면 sar -n TCP 1
active/s는 아웃바운드 TCP 연결입니다. Passive/s는 인바운드 TCP 연결입니다.
UDP의 경우 sar -n UDP 1
네트워크 처리량을 보려면 sar -n DEV(선택적으로 초당 현재 모니터링을 위해 1을 추가)