JVM 성능 최적화 시리즈 - (7) 성능 최적화에 대한 심층 이해

JVM.jpg

성능 최적화 7. 깊이 이해

시스템 성능에 영향을 7.1 측면

시스템 성능에 영향을 미치는 요인은 많은 다음 목록입니다 일반적인 방향으로 시스템 성능 최적화의 일부 :

4.05.53 PM.png에서 스크린 샷 2019년 12월 29일

성능 평가 시험 7.2 일반적으로 사용되는 지표

응답 시간

일반적으로보다 평균 응답 시간에 대해 우려를 사용하여 요청에 대한 시간 응답 사이의 요청 및 반환을 제출.

예를 들면 :이 데이터베이스 쿼리에 걸리는 시간, 문자는 웹 페이지를 취 터미널, 액세스 시간에 소요되는 시간에 백업;

동시성

동시에 참조, 실제로 서버에 대한 요청의 상호 작용이 될 것입니다. 그리고 사이트 협회의 온라인 사용자의 수.

처리량

작업 (요청)의 양의 측정 단위 시간당 완료합니다.

예를 들면 : 분당 데이터베이스 트랜잭션을, 두 번째 파일 전송 당 킬로바이트 수, 웹 서버 히트 수의 매 순간.

일반적으로, 평균 응답 시간은 더 큰 시스템의 처리량 짧은, 긴 평균 응답 시간, 작은 처리량 시스템. 그러나 더 큰 시스템 처리량이 아닌 평균 응답 시간은 짧습니다.

7.3 일반적인 성능 최적화 도구

성능 튜닝 시스템의 경우, 일반적으로 다음과 같은 세 가지 측면에서 시작 :

  1. 프런트 엔드 최적화
  2. 애플리케이션 성능 최적화 서비스
  3. 스토리지 성능 최적화

그러나 상관없이 최적화 방법, 일반적인 원칙은 없다 :

  • 조기 최적화, 기본 기능이 완료되었음을 전제하고, 시험 패스에 최적화를 피하십시오;
  • 시스템 성능이 아닌 성능 테스트 추측을 확인하는 성능 테스트;
  • 시스템 병목 현상, 분할 통치, 점차 최적화를 찾을 수 있습니다.

프런트 엔드 최적화

  • 브라우저 / 앱
  1. 요청의 수를 감소;
  2. 클라이언트 버퍼를 사용하여;
  3. 압축 사용
  4. 리소스 파일로드 순서
  5. 전송을 줄일 쿠키
  • CDN 가속

  • 역방향 프록시 캐시

  • WEB 별도의 구성 요소

애플리케이션 성능 최적화 서비스

1. 캐시

우선 순위는 성능 최적화에 캐싱을 사용합니다.

2. 클러스터

4.25.51 PM.png에서 스크린 샷 2019년 12월 29일

3. 비동기

  • 동기 및 비동기 : 통신 메커니즘에 초점 메시지의 결과이다.
  • 차단 및 비 차단 : 초점은 국가의 결과를 기다리는 호출자에게 반환됩니다.

조합의 네 가지 상태가있다.

4. 프로그램

  • 레벨 코드 : 알고리즘은 쓰기에 더 적은 코드를 선택, 적절한 데이터 구조를 선택합니다.
  • 동시 프로그래밍 :; 피하기 보안 스레드, 스레드 안전 클래스를 달성, 동시성 프레임 워크와 JDK에서 제공하는 도구의 모든 종류의 사용할 수 있도록 설정, 스레드 풀을 사용하려고, 멀티 코어 CPU의 스레드의 적절한 수를 최대한 활용할 수 경쟁을 줄이기 동기화 잠금에서 : 줌 잠금 범위는 잠금 단위 로크 세그먼트, 여분 단독 잠금을 감소 CAS, 같은 ThreadLocal를 대신 잠금, 잠금 읽기 쓰기.
  • 자원 재사용 : 작성하고 시스템 자원을 많이 파괴의 오버 헤드를 줄일 수 있습니다. 싱글 및 풀링 기법.
  • JVM 튜닝

튜닝 방향 GC : GC 시간은 작은 충분하다 GC의 적어도 충분한 수의

대부분의 자바 애플리케이션 튜닝 GC를 필요로하지 않는, GC 튜닝 가장 필요한 문제 아닌 매개 변수, 문제는 코드 GC 튜닝은 최후의 수단이다.

GC 튜닝 우선 순위는 첫째 : 적절한 투자 회수 초 GC를 선택 : 적절한 셋째 힙 크기를 선택 : 스택의 젊은 세대의 비율을 선택

1. 2. 상태 모니터링 GC 분석 여부 최적화 minGC 시간 "은 50ms, 주파수에서 10S FullGC 실행 시간을 1 초를 결정하기 위해 10 분 이상

GC 로그를 인쇄 :

-XX : + PrintGCDetails -XX : + HeapDumpOnOutOfMemoryError -XX : HeapDumpPath -XLogger :를 logpath -XX : PrintHeapAtGC

스토리지 성능 최적화

  • SSD를 사용하려고
  • 정기적 클린 데이터 또는 데이터 특성에 따라 개별적으로 저장된
  • 일련의 처리 결과

은 "복잡한 백엔드의 길"에서이 문서 원본 블로그에서 시작 teckee.github.io/ , 소스를 표시하시기 바랍니다

공공 우려 번호 "의 복잡한 백엔드 도로"를 검색하고 즉시 최신 기사 얻을 2천위안 가치 BATJ 부티크 인터뷰 과정 .

정교한 백엔드 도로 .PNG

추천

출처juejin.im/post/5e5a77366fb9a07ccd518d64