답변:
분명 아무것도 스케일뿐만 아니라 빠른 웹 서버에서 제공하는 정적 파일을 로드하고, 그것뿐만 아니라 수행하지 않습니다 워드 프레스하거나로드 할 알아낼 것이며 CMS. 문제 중 하나는 URL 요청 당 필요한 데이터베이스 쿼리의 수이며, 2 년 전 Drupal과 독점적으로 작업 한 경험이 있으며 WordPress에서 2 년 이상은 해당 부서에서 WordPress가 훨씬 더 우수하다는 것입니다.
즉, 어떤 권력을 가진 어떤 것도 "즉시" 확장 할 수 없다 . 그것에 대해 전부 당신의 확장 성 요구가 증가 당신이 무엇을 할 수 있는지?
"많은 트래픽" 의 저급 에는 훌륭한 캐싱 플러그인 과 저렴한 CDN 과의 통합이 있으며 IT 예산이없고 예산이 적은 예산으로도 훌륭한 작업을 수행 할 수 있습니다. 검토 할 다른 질문과 답변은 다음과 같습니다.
성능 병목 현상을 식별하기 위한 프로파일 링 옵션이 있습니다 .
병목 현상이 확인되면 Transients API 와 같은 작업을 통해 현지화 된 최적화 를 수행 할 수 있습니다 . 이 Q & A는 Transients API를 사용하여 최적화 할 수있는 예제를 제공하고 다음을 보여줍니다.
큰 총 을 꺼내고 싶다면 Memcached , HyperDB , Nginx 등을 구성 하여 속도를 높일 수 있습니다 (후자는 WordPress에서 놀라운 확장 성을 얻는 방법으로 실제로 진화하고있는 것처럼 보입니다).
그리고 마지막 으로 WP Engine , ZippyKid 등과 같은 성능을 전문으로하는 새로운 WordPress 중심 웹 호스트가 있습니다.
그래서 좋은 소식은 매우 잘 비늘의 모든이다 ; 트래픽이 크게 증가함에 따라 기술 복잡성 및 비용이 증가함에 따라 자유롭고 쉬운 것부터 시작합니다. WordPress로 작게 시작하면 좋을 것입니다. 트래픽이 증가하고 합리적으로 수익을 창출하는 경우 필요할 때 확장 할 수있는 비용 효과가 있습니다.
최소한 IMO. :)
공유 호스팅을 많이 기대하지 마십시오. 공유 호스트에있을 때 WordPress가 느려지는 것을 비난하지 마십시오. 공유 호스트는 1000 개의 계정을 하나의 서버에 넣을 수 있습니다. 하루 종일 $ 10의 계정을 최적화하는 데 하루 종일 사용할 수 있으며 중요하지 않습니다. "구름"이라고해서 100 ~ 1000 명의 사람들과 하나의 서버를 공유하지 않는다는 의미는 아닙니다.
지금은 캐시 플러그인이 필요하지 않다고 생각합니다. WP 소스 코드를 보면 이미 코어에 구운 고급 캐싱이 있습니다. 캐시 캐시 캐시 캐시는 조심스럽지 만 역효과를 낳을 수 있습니다.
속도를 늦추는 가장 중요한 것은 MySQL 쿼리 속도가 느리고 WordPress가 기본적으로 문제를 일으키지 않아야한다는 것입니다. 그러나 댓글이 50,000 개 이상이므로 댓글 쿼리를 "제한"해야했습니다. (이것은 아직 수정 되었습니까?) 또한 비정형적인 작업 (예 : 1000 개의 범주?)을 수행하는 경우에도 문제가 될 수 있습니다.
나는 NginX와 함께 Linode 512를 사용하고 "top"은 PHP와 NginX가 요청 당 1/100 초 이내에 작업을 수행하는 것을 보여줍니다. 거의 모든 CPU 시간은 MySQL과 연결되어 있습니다. 한 달에 $ 20 Linode로 1 백만 페이지를 제공 할 수 있지만 일단 플러그인과 사진을 추가하기 시작하면 "1GB"Linode가 필요하다고 생각합니다. 내 관점에서 볼 때, 그것은 매우 선형 적입니다. 페이지 뷰가 두 배이면 Linode의 크기를 두 배로 늘리십시오.
면책 조항 : 나는 Linode에서 일하지 않습니다.
PHP로 페이지의 일부를 캐시하고 싶기 때문에 업데이트 (~ 2 년 후) 놀랍도록 빠른 간단한 솔루션이 있습니다. 1/100 초 안에 페이지 당 여러 개의 개별 부품 / 부분을 캐싱하고 있습니다. 램 디스크가 이것을 더 빨리 만들 수있는 것처럼 보이지만 내 필요에 따라 매우 빠릅니다.
$cache_file = "./cache/portion-1". $since; // maybe round() this $since timestamp
$cache_life = 1000; // seconds to keep this cached
$filemtime = filemtime($cache_file); // returns FALSE if file does not exist
if (!$filemtime or (time() - $filemtime >= $cache_life)) {
// heavy lifting starts
$output = 'Heavy!';
// heavy lifting ends
if (!file_put_contents($cache_file,$output,LOCK_EX)) { echo 'error'; } // save the cache
echo $output;
} else {
// load from cache
$output = file_get_contents($cache_file);
echo $output;
}
궁극적으로 WordPress 속도를 늦추는 세 가지가 있으며 다음과 같이 요약됩니다.
위의 내용을 모두 갖추면 바니시, CDN, 페이지 캐싱 등 캐싱을 추가 할 수 있습니다.
수평 확장이 필요한 경우 데이터베이스에 PerconaDB XtraDB를 사용하고 파일에 Unison을 사용하여 클러스터를 생성 할 수 있습니다. 이렇게하면 wp-admin 및 cron 러너로 하나의 노드를,로드 밸런서 뒤에서 웹 트래픽을 제공하는 다른 노드를 가질 수 있습니다.