>일일 프로그램 >PHP 지식 >높은 동시성 및 대규모 트래픽 솔루션

높은 동시성 및 대규모 트래픽 솔루션

远方*
远方*원래의
2022-04-06 13:36:13356검색

1. 높은 동시성 아키텍처 관련 개념

높은 동시성의 개념: 동시성, 높은 동시성은 일반적으로 동시 액세스를 나타냅니다. 즉, 특정 시점에 동시에 얼마나 많은 방문이 발생하는지를 나타냅니다.

2. 높은 동시성 문제와 관련하여 우리가 전체적으로 관심을 가져야 할 부분은 무엇인가요?

qps: 초당 요청 수 또는 쿼리 수 인터넷 분야에서는 초당 응답 요청 수(http 요청) 처리량: 단위 시간당 처리되는 요청 수(보통 QPS 및 동시성에 의해 결정됨) ) 응답 시간, 요청을 보내고 응답을 받는 데 걸리는 시간입니다. 예를 들어 시스템이 http 요청을 처리하는 데 100ms가 걸립니다. 이 100ms 호르몬 시스템의 응답 시간은 pv: 페이지 조회수입니다. , 페이지 조회수 또는 클릭수는 24시간 이내에 응답을 받습니다. 동일한 사용자가 귀하의 웹사이트에서 동일한 페이지를 방문한 횟수는 한 번만 계산됩니다. 즉, 동일한 방문자입니다. 방문자는 특정 시간 범위 내에서 웹사이트를 여러 번 탐색하며 1명의 독립 방문자로만 계산됩니다. 대역폭: 대역폭 크기 계산 주의해야 할 두 가지 지표가 있습니다. 최대 트래픽과 평균 페이지 크기입니다. /통계 시간(초로 환산) * 평균 페이지 크기(단위 kb) * 8qps는 동시 연결 수와 동일하지 않습니다. Qps는 초당 http 요청 수입니다. 동시 연결 수는 처리되는 요청 수입니다. 초당 최대 요청 수(qps) = (총 PV 수의 80%) / (6시간 동안의 초 수의 20%): 최대 동시 실행 수 테스트가 견딜 수 있는 최대 동시성 수 QPS 값 테스트 도구: ab, wrk, http_loadab: 동시에 특정 URL 주소에 액세스하는 여러 방문자를 시뮬레이션하기 위해 여러 동시 스레드를 생성할 수 있습니다. 테스트 대상은 URL 기반이므로 Apache의 부하 압력을 테스트하는 데 사용할 수 있습니다. 그렇습니다. 테스트할 수 있습니다

3. ab 도구 사용 시 주의 사항

테스트 기계와 테스트 대상 기계를 분리하여 사용해야 합니다. 테스트 도구 ab가 위치한 머신의 CPU, 메모리, 네트워크 등이 최대 한도의 75%를 초과하지 않는지 온라인 서비스에서 스트레스 테스트를 수행하세요

4. 다양한 QPS의 솔루션

최적화 예:

a, qps가 100에 도달

관계형 데이터베이스의 각 요청이 0.01초 이내에 완료된다고 가정합니다.
단일 페이지에 SQL 쿼리가 하나만 있다고 가정하면 1000ps는 100을 의미합니다. 요청은 1초 안에 완료되지만 현재로서는 데이터베이스를 보장할 수 없습니다. 쿼리는 100번 완료될 수 있습니다
구성표: 데이터베이스 캐시 계층, 데이터베이스 로드 밸런싱

qps가 800에 도달

실제 대역폭을 의미하는 100M 대역폭을 사용한다고 가정합니다. 웹 사이트 내보내기는 약 8M입니다
각 페이지가 10k에 불과하다고 가정하면 동시성 조건에서 100M 대역폭이 소진되었습니다
계획: cdn 가속, 로드 밸런싱

qps가 1000에 도달

정적 html 캐시
qps가 2000에 도달
이 정도 수준. 파일 시스템 액세스 잠금이 재앙이 되었습니다.
솔루션: 비즈니스 분리, 분산 스토리지

5. 높은 동시성 솔루션 사례

트래픽 최적화: 안티 핫링크 처리
프런트엔드 최적화: http 요청 감소, 비동기 요청 추가, 브라우저 활성화 캐싱, 파일 압축, CDN 가속, 독립적인 사진 서버 구축
서버측 최적화: 페이지 정적화, 동시 처리, 큐 처리
데이터베이스 최적화: 데이터베이스 캐싱, 하위 데이터베이스 및 하위 테이블, 파티션 작업(도구를 사용하여 완료 가능) ), 읽기 및 쓰기 분리, 로드 밸런싱
웹 서버 최적화: 로드 밸런싱(리버스 프록시, lvs를 사용하여 로드 밸런싱 달성)

위 내용은 높은 동시성 및 대규모 트래픽 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.