이 글은 주로 PHP의 높은 동시성 및 대용량 트래픽 문제를 해결하는 방법을 소개합니다. 이제 모든 사람과 공유할 수 있습니다.
TFS: 처리량(처리량은 단위 시간당 시스템에서 처리하는 요청 수를 의미) RT: 응답 시간(요청을 보낸 시점부터 응답 시간까지)
동시성 수: 일정 시간 내에 동시에 사이트를 방문하는 사용자 수
QPS: 초당 쿼리 속도(초당 요청 수 또는 응답 수, 인터넷 분야에서는 초당 해당 요청 수(HTTP 요청))
PV: 페이지뷰 페이지뷰
UV: 사용자뷰 사용자 방문수
일반적으로 일일 pv(방문수)가 1,000만 명 이상이면 동시성이 높다고 볼 수 있습니다
일일 웹 사이트 대역폭 = PV / 통계 시간(초) * 평균 페이지 크기(KB) * 8
스트레스 테스트
아파치 자체 스트레스 테스트 도구인 ab사용을 권장합니다. : apache 디렉토리를 입력하고 현재 디렉토리(windows)에서 실행:
ab.exe -n 总请求量 -c 并发请求量 http://请求地址
요청이 완료된 후 데이터를 얻을 수 있습니다:
Server Software: Apache/2.4.18 服务器类型 Server Hostname: eko.xiao.com 域名 Server Port: 80 端口 Document Path: /index.html 请求文件 Document Length: 529 bytes 文件大小 Concurrency Level: 100 并发数 Time taken for tests: 1.240 seconds 总响应时间 Complete requests: 1000 请求数 Failed requests: 0 失败次数 Total transferred: 800000 bytes 总共传输数据量 HTML transferred: 529000 bytes Requests per second: 806.41 [#/sec] (mean) QPS(每秒查询率) Time per request: 124.007 [ms] (mean) 平均响应时间 Time per request: 1.240 [ms] (mean, across all concurrent requests) Transfer rate: 630.00 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.4 1 38 Processing: 42 114 34.2 103 204 Waiting: 41 113 33.9 102 204 Total: 43 115 34.5 104 207 Percentage of the requests served within a certain time (ms) 50% 104 66% 117 75% 133 80% 136 90% 173 95% 197 98% 204 99% 204 100% 207 (longest request)
Optimization
QPS가 증가함에 따라 다양한 최적화 조치가 필요합니다. 각 단계에서 최적화 솔루션은 하드웨어 및 네트워크 조건과도 관련이 있습니다QPS가 50에 도달
최적화할 필요가 없습니다QPS가 100에 도달합니다(데이터베이스 계층)
각 데이터베이스 쿼리가 0.01S이고 각 페이지가 SQL 쿼리가 하나만 있으면 이때 이미 데이터베이스 제한에 도달했습니다. 최적화 조치: 데이터베이스 캐시, 데이터베이스 로드 밸런싱, redis, memcacheQPS가 800(네트워크 대역폭)에 도달했습니다 각 페이지가 10K에 불과하다고 가정하면 800QPS에서 대역폭이 소진되었습니다최적화 조치: CDN 가속 로드 밸런싱QPS가 1000에 도달 최적화 조치: 정적 페이지 트래픽 최적화: 핫링크 방지 처리 프런트 엔드 최적화: 감소 HTTP 요청 비동기 요청 추가 브라우저 캐시 활성화 서버 최적화: 페이지 정적화 동시 처리 대기열 처리 데이터베이스 최적화: 데이터베이스 캐싱 데이터베이스 하위 테이블, 파티션 작업이상이 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요! 관련 권장사항:
php 전문가 공유: PHP 코드 작성 사양, 종합 요약
PHP 설치 및 아파치 통합 소개위 내용은 PHP의 높은 동시성 및 대규모 트래픽 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!