Linux 환경에서 지연 및 패킷 손실을 시뮬레이션하기 위한 성능 테스트

성능 테스트 중에 네트워크가 비정상일 때 일부 비정상적인 데이터가 나타날지 여부도 시뮬레이션해야 합니다. 가장 일반적인 것은 데이터베이스 쓰기 작업입니다.예를 들어 주문할 때 네트워크 이상이 있으면 데이터가 상황과 일치하지 않습니까?

예를 들어, JMeter가 보낸 성공적인 요청 수가 최종 데이터베이스 테이블에 저장된 주문 데이터와 일치하지 않습니다. 이는 일반적으로 네트워크 요청 보내기의 APP와 같은 재시도 기능이 많은 프레임워크에 있기 때문에 네트워크가 비정상일 때 발생합니다. 이 요청 중에 네트워크가 불안정하고 응답이 없으면 APP에서 다시 시도하지만 이 경우 반복 주문이 있는지 여부를 고려해야 하며 두 개의 트랜잭션이 생성됩니다. 순서.

일반적으로 우리 서버에는 이러한 상황을 처리하기 위한 특정 메커니즘이 있지만 서버 측에서 이 메커니즘이 효과적인지 테스트해야 합니다.

TC 도구 소개

일반적으로 우리는 네트워크 패킷 손실을 시뮬레이션하기 위해 애플리케이션 서버의 tc 도구를 사용합니다 . tc 도구는 서버 측에서 작동하며 네트워크 카드에 대한 일부 관련 전략을 수행하도록 특별히 설계되었습니다. 예를 들어 요청이 네트워크 카드로 전송될 때 실제로 요청이 아직 프로그램에 입력되지 않은 경우 네트워크 카드가 나올 때 지연 시간을 늘리거나 패킷이 손실될 수 있습니다.

Linux에서 지연 및 패킷 손실 시뮬레이션

패킷 손실을 시뮬레이션하기 전에 이제 시스템의 네트워크 카드를 살펴보면 네트워크 카드가 eth0임을 알 수 있습니다.

그림

그런 다음 이제 이 시스템의 애플리케이션 서버에 ping을 실행하여 네트워크가 정상인지 확인합니다.

여기에 이미지 설명을 삽입하세요.

지연 설정

1. 이때 지연을 설정합니다. 여기서 eth0은 네트워크 카드 이름입니다. 다음 명령은 eth0 포트로 패킷을 보낼 때 30ms 지연을 추가합니다.

tc qdisc add dev eth0 root netem delay 30ms

지연을 설정한 후 시간이 이미 약 40ms임을 알 수 있습니다.

여기에 이미지 설명을 삽입하세요.

2. 디스플레이 지연 설정

여기에 이미지 설명을 삽입하세요.

3. 지연 수정

tc qdisc change dev eth0 root netem delay 40ms

여기에 이미지 설명을 삽입하세요.

4. 지연 구성 삭제

tc qdisc del dev eth0 root netem delay 40ms

딜레이를 삭제하고 나면 시간이 10ms 내외로 돌아오는 것을 볼 수 있습니다.

여기에 이미지 설명을 삽입하세요.

패킷 손실 시뮬레이션

1. 패킷 손실 설정

tc qdisc add dev eth0 root netem loss 10%

다시 살펴보면 패킷 손실이 발생한 것을 확인할 수 있습니다.

여기에 이미지 설명을 삽입하세요.

패킷 손실을 구성하기 위해 SSH를 통해 장치에 로그인하면 이 명령을 구성한 후 장치 액세스가 약간 멈춘다는 느낌을 받게 됩니다. 이는 장치에서 패킷이 손실되기 시작했음을 나타내며, 이는 구체적으로 패킷을 캡처하여 확인할 수 있습니다.

수정, 보기, 삭제 등의 기타 명령은 위의 지연 설정을 참조할 수 있습니다.

마지막으로 제 글을 주의 깊게 읽어주시는 모든 분들께 감사의 말씀을 전하고 싶습니다. 호혜는 언제나 필요합니다. 비록 그다지 귀중한 것은 아니지만, 사용할 수 있다면 직접 가져갈 수 있습니다.

여기에 이미지 설명을 삽입하세요.

이 정보는 [소프트웨어 테스팅] 친구들을 위한 가장 포괄적이고 완전한 준비 창고가 되어야 합니다. 이 창고는 또한 가장 어려운 여정을 통해 수만 명의 테스트 엔지니어와 동행했습니다. 또한 도움이 되기를 바랍니다!  

Supongo que te gusta

Origin blog.csdn.net/nhb687095/article/details/132777080
Recomendado
Clasificación