4. 과도 응답 : 사이트 성능 아키텍처

사이트 성능 메트릭 : 응답 시간, 처리량, TPS, HPS는, QPS
사이트가 동일한 성능하지 느낌, 사용자와 개발자를위한

웹 사이트 성능 테스트
사용자 관점의 성능은
일반적으로 개방 웹 페이지의 속도를 의미
최적화 수단
HTML 스타일을 최적화
동시 및 비동기 브라우저의 속성을 사용하여
브라우저 캐시 전략을 크기 조정을
CDN 사용할
수 있습니다 역방향 프록시를
사용자가 쉽게 뜨거운, 자주 액세스하는 콘텐츠를

원근법 현상 성능
특성 자체 서브 프로그램이
응답 지연을 포함
스루풋 시스템
의 동시 처리
시스템 안정성
수단 최적화
가속도 데이터를 판독 캐시
동시성을 향상시키기 위해 클러스터 사용
의 증가를 요청 비동기 요청 응답 메시지를 이용하여
최적화 된 코드

운영 및 유지 보수 인력 성능 측면
기본 성능 및 자원 활용
대역폭 기능, 하드웨어 Peizi 서비스, 서버 및 네트워크 자원 활용 대출
최적화 할 수있는 수단
비용 효율적인 서버의 사용을
활용 가상화 최적화 기술을
백본 네트워크를 최적화

성능 테스트 지표의
응답 시간
동시
처리량
성능 카운터

응답 시간
데이터베이스 쿼리 데이터 : 10+ MS
위치되면 기계적 하드 디스크를 어드레싱 4 MS
기계적 하드 디스크 1MB의 데이터를 읽어 MS (2)는
0.3 밀리 다음 SSD 데이터 1메가바이트 판독
원격 분산 된 데이터를 이용하여이 레디 스 읽기 0.5 밀리
메모리 미국 10 + : 데이터는 1MB입니다 읽어
자바 네이티브 메소드 호출 시간 : <10 개 우리
네트워크 전송 2킬로바이트 데이터를 1에게 우리를

동시
동시 처리 요청 수 : 시스템에 대한
웹 사이트 : 사용자의 수는 동시에 요청 제출
총 >> 동시 사용자의 사이트에서 온라인 >> 사용자의 총 수를 사용자의 총 수를 웹 사이트 시스템을
초기에 설계, 운영 및 유지 보수 인력 필요에 사용자의 예상 번호를 수행하는 시스템 기능을 설계하기

처리량
시간 시스템 단위 시간당 처리 요청의 수를 의미
표현하기 위해 요청 수 / 페이지의 초 수 / 초를 사용하여
TPS
, QPS
(초당 HTTP) HPS를, HTTP 초당 요청
동시 시스템의 작은 숫자 순서대로 필요에 좋은 것, 웹 사이트 최적화되지 않습니다 : 향상된 사용자 응답 시간, 최대화 시스템 처리량은 서버 리소스의 사용을 최대화하기 위해

성능 카운터의
지표, 시스템 모니터 중요한 매개 변수
시스템 부하 (시스템 부하가), 통화 중 무료로 시스템을 반영, CPU와 CPU를 기다리는 프로세스의 총 수에 의해 실행되는
객체와 스레드
메모리 사용의
CPU 사용량
네트워크 및 디스크 I / O

성능 시험 방법은
시험 안정성 성능 시험, 하중 테스트, 스트레스 테스트, 분리
성능 시험
시스템 설계가 의도 도달 여부를 확인하기 위해 타겟 일정한 압력이 될 것으로 예상되는
부하 시험
후 성능 테스트에서, 그리고하는 시스템까지 압력을 계속을 이상의 특정 보안 성능 지수 임계의
스트레스 테스트
시험 하중에 안전 부하를 초과 한 후, 시스템이 충돌 할 때까지 압력을 계속 없거나의 압력에 견딜 수있는 이상, 시스템의 최대 값을 획득하는 임의의 요청을 처리 할 수있는
안정성 시험을
특정 시스템의 하드웨어, 소프트웨어, 네트워크 조건, 시스템 압력에서, 시스템은 오랜 기간의 안정성을 검출 달린다.

최적화 성능 전략
프로파일
장소는 문제 해결 성능 병목 현상이 발생할 수 있습니다 요청의 모든 측면에서 확인해야
메모리, 디스크, 네트워크, CPU의 : 로그를 확인 응답 시간의 측면에서, 모니터링 데이터 불합리한 확인 된 분석
성능 최적화
웹 최적화 된 프런트 엔드
응용 프로그램 서버를 최적화
스토리지 서버 성능 최적화

웹 프론트 엔드 성능 최적화
브라우저 애드온
사이트 모델보기
사진 서비스
CDN 서비스

브라우저 액세스 최적화
, HTTP 요청을 줄일 수 있기 때문에 무 HTTP 연결을 설정 할 때마다 HTTP 요청은 요청 처리하기 위해 별도의 스레드 설정해야
수단
결합 된 CSS의
합병 JS는
이미지를 병합
브라우저 캐시 사용하지
거의 이미지, CSS 및 기타 정적 리소스를 변화가, HTTP 헤더 캐시 제어를 설정, 캐시 시간의 긴 기간을 설정할 수 있습니다 및 브라우저 캐시를 설정 만료
피하기 위해, 브라우저 캐시를 사용하는 경우, 정적 많은 자원을 업데이트해야하는 경우 다음 증분 업데이트를 채택하는 방법을 갑자기 업데이트 된 이미지 (100)는, 갱신 완료 부적절하거나하는 서버에 압력이 갑자기 증가하는 경우, 예를 들어, 서버에 요청을 증가
압축 사용하여
서버 압축을 클라이언트 압축 네트워크 트래픽 데이터 줄이는
텍스트 , HTML은, CSS, JS는 Gzip으로 압축 사용
하단 JS에서, 그 페이지의 상단에있는 CSS를
JS가 실행됩니다 인해 그 아래에 배치 가장 좋습니다, 즉시 로딩 후, 그래서 대기 기간이있을 것이다
그들이 완전히 다운로드 될 때까지 기다립니다 CSS 렌더링이 수행되기 때문에, 상기 배치 될 수
쿠키 감소 송신
쿠키에 포함 된 모든 요청 및 응답 시간, 그래서 너무 쿠키 그렇게 줄이기 위해, 전송에 영향을 미칠 것

CDN 가속
CDN (콘텐츠 배포 네트워크)는
데이터가 사용자의 로컬에 가장 가까운 캐시, 기본적으로 캐시입니다
첫 점프에 대한 네트워크 액세스를
일반적으로 정적 자원을 투입하고, 이들 장기 자원을 변경하지 않는 것이 좋습니다

프록시 역방향
클라이언트 측에서 기존의 프록시 서버를,의 서버 측에서 역방향 프록시 서버
역방향 프록시 서버를 통해 이동해야합니다 네트워크 요청이
웹 요청을 가속 캐시를 구성 할 수있는 것은
일반적으로 정적 콘텐츠는 리버스 프록시 서버에 캐시합니다
동적 콘텐츠 캐시도 할 수 있지만, 동적 컨텐츠 변경, 내부기구가 리버스 프록시 서버에 통보하도록 업데이트
로드 밸런싱

응용 프로그램 서버 성능 최적화
도구
캐시, 사이트 성능 최적화는 첫 번째 법칙의 우선 순위 사용하는 것입니다
클러스터
비동기
코드 최적화
분산 캐시
캐시 프레 젠 테이션
선호하는 솔루션입니다
, 애플리케이션 서버, 데이터베이스 서버는 캐시가 브라우저에 존재하는
데이터, 캐시 파일을 캐시 할 수 있습니다 페이지 단편 캐싱
은 주로 데이터 비율을 읽기와 쓰기에 사용되는 같은 제품 범주, 뜨거운 단어, 핫 상품 높은, 거의 변화입니다
스물여덟 법에 맞춰 웹 데이터 액세스, 데이터의 20 %가 자주 액세스 할 수 있습니다, 캐시
캐시 의 기본 원칙
데이터 액세스 시간을 단축 캐시 액세스 속도,
일부 데이터는 계산에 의해 얻은 경우는이 계산 반복 할 필요가 없습니다 캐시
, 자연 해시 테이블을 복잡도 O (1) 읽기
캐시의 합리적인 사용을
사용하지 않을 경우 합리적인, 과도하게 의존 캐시, 데이터 액세스 기능 캐시의 부적절한 사용의 성가신 시스템이 될 것이다
데이터를 자주 변경
보존 자주 데이터를 수정하는 경우, 당신은 데이터 캐시를 쓸 수 있습니다 캐시는 읽기되지 않은, 그런 다음에, 다음 캐시 데이터베이스를 수정하는 것 이 걸리지 않았다
데이터에 액세스 할 수없는 핫스팟을
공통 데이터 캐시의 스물여덟 법에 맞춰 데이터를 캐시, 폐기물의 결과로, 그렇지 않으면, 일부 캐시 된 데이터가 밖으로 압박 읽기하지 않은 경우, 캐시 사용하는 메모리 저장을
일치하지 않는 데이터의 더러운 읽을
데이터 불일치의 특정 시간 허용하는 데이터베이스를 다시 읽어 필요한 것보다 더 일반적인 데이터 세트 만료 시간을, 우리가 필요로하는
약간의 지연이 받아 들일 수 있다고을 :
이러한 처리 시간의 기간 동안 제품의 사업 편집기, 상품 선반, 같은
캐시 가용성
눈사태 : 데이터의 캐시 많은 양의 서버 충돌하거나 과도한 압력이 과도 데이터베이스 다운 타임의 결과로 만료 동안
클러스터를 설정 : 서버가 캐시가 충돌하는 경우
많은 양의 데이터가 기한이 지난 경우 : 임의 기간이 만료 + 만료 시간 다른 만료 시간 기준을 설정하거나 설정
침투 : 부적절한 사업 또는 악의적 인 공격을 반복적으로 요청 된 데이터는 데이터베이스에 대한 압박의 결과로, 존재하지 않는
솔루션 : 또한 캐시 된 데이터, 반환 비어가 없을 것 값 또는 잘못된 값이
캐시 온난화 : 직접 캐시 서버를 시작하면, 데이터베이스가 너무 많은 압력을 발생합니다. 따라서, 일부 데이터는 먼저 캐시에로드 할 수 있으며, 다음 데이터베이스에 연결
캐시 분산
보스 캐시 : 인 캐시 업데이트 동기화, 동기화 캐시 유지하기 위해 필요
Memcache를 각각 다른 캐시가 아닌 통신 및 동기화 관계없이 서로 통신하지 않습니다를
좋은 선팽창, 좋은 무제한의 확장 성 (일관성 해시)를 달성하기 위해
통신 프로토콜이 필요합니다 : <프로토콜> <직렬화 통신 프로토콜>
TCP를 사용하여
명령 키 시퀀스 계약 쓰기 사양 예제를 사용하여 : GET
풍부한 언어를 지원 자바 C C ++ PHP 때문에
효율적인 메모리 관리가
고정 된 공간 할당 Page.51 사용

비동기 작업
메시지 큐를 사용하여이 서버가 요청하지 제 프로세스를 수신하고, 상기 메시지 큐에 추가 된 후, I, 클라이언트가 응답을 수신 말해, 그 요청을 처리하는 시간이있다.
부하 압력 피크 (피크 클리핑) 줄일 수 있습니다
당신이 수행 할 수있는 모든 작업을 수행 할 수 늦게이 지연되는
추가가 완료되었습니다 사업을 말할 메시지 큐, 다음 다른 방법으로 참여, 교역 증대 등을 한 후 약간의 시간이 페이지를보고 그것은 제품 A를 성공에 추가되었습니다

클러스터 사용하여
여러 서버의 클러스터를 구축하는로드 밸런싱은 여러 서버에 대한 동시 액세스를 할당합니다

코드 최적화
가 차단 IO CPU를 출시 할 예정 기일 차단 IO 및 멀티 CPU에 멀티 스레딩은 멀티 스레딩이 더 좋을 것이다, CPU는 CPU 리소스의 사용을 극대화 할 수있는, 다른 작업을 수행 할 수 있습니다
비 저장 개체에 개체에
어떤 물체가 없습니다 모든 속성 정보 없음 멤버 변수, 또는 그 임의의 속성 정보와 멤버 변수를 참조하지 않고는 서블릿 객체 무 위해 설계
무 오브젝트 웹 빈혈 모델되는
로컬 객체를 사용하는
경우에있어서, 내부 객체를 생성하는 실수 확산 출력, 멀티 스레드 동시성으로 이어질하지 않습니다
잠금 사용하여 동시 액세스 자원
multi-thread 액세스, 직렬 접속하여 잠금이 변경 시간을
지금 경량 자바 잠금 장치, 액세스 및 릴리스 잠금 작은 비용 소개
동시 실행으로 이어지는 잠금 시리얼 스레드가 시스템 성능에 심각한 영향이됩니다
다중화 자원
싱글 톤 패턴은
대상 객체가 자주 변경되지 않는, 그 적용, 예를 들어, DAO 계층과 서비스 계층, 단일 사용 봄 모델 설계이자
오늘날 웹 있습니다 빈혈 모델은 물론 싱글 적용
객체 풀
모든 웹 요청 다음, 실행 별도의 스레드를 확립 좋은 풀링을 사용하고자로 돌아
데이터 구조
시스템의 성능 향상 알고리즘과 데이터 구조의 유연한 사용을
분산 해시 값을, 문자열은 일반적으로 Time33 알고리즘을 사용
하지만, AB AA이, 계산 된 해시 값 아주 가까이 후 재 해시 지문 방법이 사용될 수있다
원래 문자열 -> MD5 계산에 지문을 채취 -> 해시 계산을 통해 -> 코드 하시의
가비지 컬렉션
신생대가
에에서 세 가지 영역으로 나누어 져, 에덴,
방금 만든 대상 에덴 저장소
에덴 후가 가득, 트리거 용 GC가에서 지역에있는 모든 개체를 복제하는 것
,받는 사람에 에덴 영역 및 객체에서 용인 GC 복사를 유발, 다시 에덴 영역과 대상 연령 플러스 1에서 특정 값까지 이전 년으로 전송됩니다
년 된
전체 GC 시스템에 상대적으로 큰 영향을 트리거링,이 지역은 옛날이 가득

스토리지 성능 최적화
기계 하드 디스크는 각각 좀 더 시간을 찾기 위해 소모 지정
, 랜덤 액세스 메모리 유사한 SSD를,
B + 트리의
데이터베이스가 3 번 쿼리 만 쿼리 로그, 제를 3 층에 두 개의 B + 트리 인덱스를 사용하여 2. 두 번째 검사 루트는 디스크에 확인할 수 있습니다 줄 번호를 얻기 위해 줄 번호를 얻기 위해 셋째 아이를 루트 노드 (3)를 확인
후, 줄 번호를 얻기 위해, 다섯 번 디스크 액세스 할 기록이 필요로 갱신 판독 동작 및 기록 동작 캔
LSM 트리
병합 프로세스가 메모리에서 수행되도록 주문 N의 병합 트리 인
기록 동작 많이 LSM 나무를 사용하여이 디스크의 수를 줄일 수있을 때 에의 액세스
는 RAID
는 RAID 0
은 RAID. 1
은 RAID 10
은 RAID. 5
는 RAID. 6
HDFS (하둡 분산 파일 시스템), 하둡 분산 파일 시스템
의 콘텐츠 관리 파일 단위의 블록으로, 파일이 다른 두 할 백업 시스템 동기화 각 블록을 완료 블록 블록의 복수로 분할되고, 이는 인 동일한 데이터의 세 가지 기계

게시 20 개 원래 기사 · 원 찬양 한 · 전망 1457

추천

출처blog.csdn.net/weixin_44587666/article/details/89675397