
우리는 전용 서버에 웹사이트를 운영하고 있습니다. 서버 설정은 다음과 같습니다.
- 정품 Intel, Intel(R) Core(TM) i5-2400[이메일 보호됨]
- 버전 Plesk v10.3.0_build1012110629.18 os_Ubuntu 10.04
- OS 리눅스 2.6.38.2-xxxx-std-ipv6-64
- 메모리총 16GB
이 웹사이트(http://www.bobcat.pro)은 18,000개의 카테고리, 300,000개의 상품으로 구성된 전자상거래 사이트입니다. 모두 PHP5/MySQL에서 실행됩니다.
탐색할 때 볼 수 있듯이 페이지 표시가 5초(또는 그 이상) 내에 완료되는데 이는 너무 깁니다. 저희 서버 설치에 맞춰 디스플레이를 줄일 수 있는 방법을 찾고 있습니다.
바니쉬를 사용해봤는데 경험상 문제가 너무 많아 재시도를 못했어요. 추천 메뉴가 무엇인가요? Apache 2용 page_speed google 모듈이 좋은 솔루션인가요?
답변1
답변2
전자상거래 애플리케이션 공급업체가 가장 잘 대답할 수 있습니다.
표면적으로는 HTTP 응답에 일종의 캐시 제어 헤더('Expires' 헤더 또는 'Etag')를 원하는 것처럼 보입니다. 그러나 반드시 이러한 항목을 모든 곳에 추가하고 싶지는 않습니다. 그렇지 않으면 사용자가 캐시로 이동하는 대신 새로운 보기가 정말로 필요한 부분에서 문제가 발생할 수 있습니다.
실제로 전자 상거래 응용 프로그램이 이러한 헤더를 기본적으로 조정하지 않는다는 것은 일종의 범죄입니다(캐시가 '부실'한 때를 아는 것은 응용 프로그램이 가장 잘 아는 것입니다). 나는 다른 것을 찾고있을 것입니다.
또한 단일 요청에 소요되는 시간으로 판단하면 애플리케이션이 적용되는 카테고리 및 제품 수에 비해 잘리지 않는 것처럼 보입니다. 그들은 아마도 '테이블 스캔'(많은 디스크 I/O)을 포함하는 일부 SQL 쿼리를 수행하거나 데이터베이스 메모리의 매우 큰 작업 세트(예: 300,000개 레코드 정렬)를 포함하는 일부 복잡한 쿼리를 수행할 것입니다. MySQL 데이터베이스의 인덱스는 때때로 이러한 문제에 도움이 될 수 있지만 애플리케이션 설치 절차에서 이를 추가하는 것이 더 좋을 것입니다. 왜냐하면 데이터베이스를 최적화하기 전에 애플리케이션이 실행할 가능성이 있는 쿼리를 먼저 알아야 하기 때문입니다. 해당 업무에 잘못된 전자상거래 지원을 했다는 또 다른 신호입니다.