[높은 동시성] 인터뷰어 : 성능 최적화를위한 측정 기준은 무엇입니까? 주의가 필요한 것은 무엇입니까?

앞에 쓰기

최근 많은 소규모 파트너들이 성능 최적화 작업을하지 않았다고 말하고 있으며, 회사에서 CRUD 작업을 일부만하고 성능 최적화 관련 작업에 접근 할 수 없습니다. 이제 제가 면접을 보러 가면 면접관이 항상 저를 당황스럽게하기 위해 몇 가지 까다로운 질문을합니다. 그러면 우리는 무엇을해야합니까? 그런 다음 높은 동시성 시스템과 관련된 인터뷰에서 쉽게 물어볼 수있는 몇 가지 질문을 작성하겠습니다. 오늘은 동시성이 높은 시나리오에서 성능 최적화를위한 측정 표준과 최적화를 수행 할 때주의해야 할 문제에 대해 이야기 해 보겠습니다.

인터뷰 장면

Interviewer : 평소 작업에서 성능 최적화와 관련된 작업을 수행 했습니까?

먼저 면접관의이 질문을 분석해 봅시다. 사실 내 채용 면접 경험을 바탕으로 면접관이 그런 질문을하면. 본질적으로 면접관이 단순히 대답하는 것이 아닙니다. 완료 또는 완료되지 않았습니다. 그러나 저는이 간단한 질문을 사용하여 면접관의 사고 능력과 문제에 대한 이해를 조사하고 싶습니다. 면접관은 본질적으로 면접관이이 질문을 통과하고 성능 최적화 관련 작업에 대한 자신의 경험에 대해 설명하고 성능 최적화 메트릭, 해당 기간 동안주의해야 할 문제와 같은 성능 최적화 작업에 대한 이론적 이해를 원합니다. 그리고 더 많은.

면접관이 면접 중에 면접관의 의도를 완전히 이해하지 못하고 질문에 답할 때 치약을 짜는 것과 같은 요점을 짜 내면 대부분의 경우 면접관은이 사람이 성능 최적화에 대한 경험이 없다고 생각합니다. . 이때 면접관의 심리에 대한 면접관의 인상이 크게 줄어들고 면접 결과가 차가울 확률이 매우 높다.

여기에 사진 설명 삽입

지표

성능 최적화를 위해 측정 할 많은 지표가 있으며, 크게 성능 지표, 응답 시간, 동시성, 두 번째 개방 률 및 정확성으로 나눌 수 있습니다. 아래 다이어그램을 사용하여 이러한 측정 항목을 나타낼 수 있습니다.

여기에 사진 설명 삽입

다음으로 이러한 측정 지표를 개별적으로 설명합니다.

공연

성능 표시기는 처리량 및 응답 속도를 포함 할 수 있습니다. 일반적으로 QPS, TPS, HPS 등이라고 부르는 것은 처리량 때문일 수 있습니다. 많은 친구들이 QPS, TPS, HPS에 대해 잘 모르실 수 있습니다. 먼저이 편지의 의미에 대해 이야기 해 봅시다.

  • QPS는 초당 쿼리 수를 나타냅니다.
  • TPS는 초당 트랜잭션 수를 나타냅니다.
  • HPS는 초당 HTTP 요청 수를 나타냅니다.

이는 처리량과 관련된 모든 지표입니다.

일반적으로 최적화 작업을 수행 할 때 먼저 최적화해야 할 사항을 명확히해야합니다. 예 : 시스템의 처리량을 개선하기 위해 최적화 작업을 수행하고 있습니까? 아니면 시스템의 응답 속도를 향상시켜야합니까? 구체적인 예를 들면 : 예를 들어 프로그램에 일부 데이터베이스 또는 캐시 배치 작업이 있습니다. 데이터 읽기의 응답 속도는 감소했지만 전체 시스템을 최적화하는 한 최적화 목표는 처리량입니다. 처리량이 크게 증가하여 프로그램의 성능도 향상됩니다.

따라서 성능 최적화는 시스템의 응답 속도를 향상시키는 것만이 아닙니다.

여기서 성능 최적화는 처리량을 맹목적으로 최적화하고 응답 속도를 최적화하는 것이 아니라 처리량과 응답 속도 간의 균형을 찾고 제한된 서버 리소스를 사용하여 사용자 경험을 개선하는 것입니다.

응답 시간

응답 시간에는 두 가지 매우 중요한 메트릭이 있습니다. 즉, 평균 응답 시간과 백분위 수입니다.

(1) 평균 응답 시간

일반적으로 평균 응답 시간은 서비스 인터페이스의 평균 처리 용량을 반영합니다. 계산 방법은 모든 요청에 ​​소요 된 시간을 더하고 요청 수로 나누는 것입니다. 간단한 예를 들면 : 예 : 웹 사이트에 5 개의 요청을 보내고 각 요청에 소요 된 시간은 1ms, 2ms, 1ms, 3ms, 2ms이고 평균 응답 시간은 (1 + 2 + 1 + 3 + 2) / 5 = 1.8ms이므로 평균 응답 시간은 1.8ms입니다.

평균 응답 시간에 문제가 있습니다. 요청이 단기간에 매우 느려지지만 빠르게 전달되면 평균 응답 시간이 성능 변동 문제를 반영 할 수 없습니다.

(2) 백분위 수

백분위 수는 최적화 할 때 시간 범위를 설명하고 각 요청에 소요 된 시간을 목록에 추가 한 다음 이러한 시간을 오름차순으로 정렬하는 것입니다. 이런 식으로 특정 백분위 수에 소요되는 시간을 취하고이 숫자가 TP 값입니다.

TP 값의 의미 : N % 이상의 요청이 X 시간 내에 반환됩니다. 예를 들어, TP90 = 50ms, 이는 90 번째 이상의 요청이 50ms 이내에 반환됨을 의미합니다.

백분위 수도 매우 중요하며 애플리케이션 인터페이스의 전반적인 응답을 반영합니다.

일반적으로 백분위 수를 TP50, TP90, TP95, TP99, TP99.9 및 기타 세그먼트로 나눕니다. 높은 백분위 수에 대한 요구 사항이 높을수록 시스템 응답 기능에 대한 안정성 요구 사항이 높아집니다.

동시성

동시성은 시스템이 동시에 처리 할 수있는 요청 수를 나타내며 시스템의로드 용량을 반영합니다.

높은 동시성 시스템을 최적화 할 때 종종 동시성 양도 조정합니다. 동시에 요청을 처리하는 시스템의 기능을 향상시키기위한 다양한 조정 방법도 있습니다.

일반적으로 동시성의 표시기는 이해하기가 상대적으로 간단하므로 너무 많이 설명하지는 않겠습니다.

두 번째 개방 비율

2 차 오픈 률은 주로 프론트 엔드 웹 페이지 나 모바일 앱에 대한 것이며, 프론트 엔드 웹 페이지 나 APP이 1 초 이내에 원활하게 열릴 수 있다면 특히 홈페이지 로딩이 가능합니다. 이때 사용자는 프론트 엔드 웹 페이지 나 앱이 매우 원활하게 사용된다는 느낌을 받게되며, 3 초 이상 소요될 경우 사용자가 직접 프론트 엔드 웹 페이지를 종료하거나 앱을 더 이상 사용하지 않게됩니다.

따라서 높은 동시성 시나리오에서 프로그램을 최적화하려면 백엔드 프로그램뿐 아니라 프론트 엔드와 APP도 최적화해야합니다.

단정

정확성이란 응용 프로그램을 최적화하기 위해 사용하는 방법이나 수단에 관계없이 최적화 된 대화 형 데이터 결과가 정확해야 함을 의미합니다. 최적화 전 성능이 상대적으로 낮고 데이터가 정확하고 최적화 후 성능이 상대적으로 높지만 데이터가 부정확 한 현상은 없습니다.

주의가 필요한 최적화 문제

여기에 사진 설명 삽입

  • 필요하지 않는 한 처음에 최적화하지 마십시오 (특히 개발 단계에서).
  • 일부 최적화 지침은 구식이므로 현재 소프트웨어 및 하드웨어 환경을 고려해야합니다 (규칙을 고수하지 마십시오).
  • 캐시 적중률과 같은 특정 시스템 수준 지표를 과도하게 강조하지 말고 성능 병목 현상에 중점을 둡니다.
  • 맹목적으로 따르지 말고 시스템의 성능 병목 현상을 테스트하고 찾은 다음 최적화 방법을 결정하십시오.
  • 최적화의 비용과 이점을 평가하는 데주의를 기울이십시오 (일부 최적화에는 기존 아키텍처에 대한 조정이 필요할 수 있으며 개발 / 운영 및 유지 관리 비용이 증가 할 수 있음)
  • 최적화의 목표는 사용자 경험과 하드웨어 비용 절감입니다 (클러스터 크기를 줄이고 단일 시스템 고성능에 의존하지 않음).
  • 테스트 환경의 최적화 방법은 프로덕션 환경에 효과적이지 않을 수 있습니다 (최적화는 실제 상황을 기반으로해야 함)

자, 오늘 그것에 대해 이야기합시다! 더 많은 사람들이 함께보고, 함께 배우고, 함께 발전 할 수 있도록 그것을 좋아하는 것을 잊지 마세요. !

추천

출처blog.csdn.net/l1028386804/article/details/108655417