우리 회사는 이번 주에 프라임 타임 TV 쇼에 출연 할 것이며 웹 사이트에서 한 번에 약 20 만 명의 방문자를 기대할 수 있다고 말했습니다.
일반적으로 하루에 약 100 회의 방문이 발생하므로 많은 트래픽을 처리 할 수 있을지 모르겠습니다. 에 의해 호스팅됩니다 1and1.co.uk
.
사이트가 무너지는 것을 방지하기 위해 취할 수있는 예방 조치가 있습니까?
우리 회사는 이번 주에 프라임 타임 TV 쇼에 출연 할 것이며 웹 사이트에서 한 번에 약 20 만 명의 방문자를 기대할 수 있다고 말했습니다.
일반적으로 하루에 약 100 회의 방문이 발생하므로 많은 트래픽을 처리 할 수 있을지 모르겠습니다. 에 의해 호스팅됩니다 1and1.co.uk
.
사이트가 무너지는 것을 방지하기 위해 취할 수있는 예방 조치가 있습니까?
답변:
트래픽이 많은 기간 동안 서버는 웹 사이트 방문자의 모든 요청을 처리 할 수 있어야합니다. 그러나 서버가 처리하는 동시 연결에는 약간의 제한이 있습니다. 따라서 가능한 빨리 페이지 요청을 처리하는 것이 가장 좋습니다.
이러한 상황에서 고려해야 할 몇 가지 제안이 있습니다.
응용 프로그램 수준 향상 :
1. HTTP 요청을 최소화하여 페이지로드 시간을 단축하십시오.
a) 모든 JS 파일을 하나의 결합 된 JS 파일로 결합하고 모든 CSS 파일을 하나의 결합 된 CSS 파일로 결합합니다.
b) JS 및 CSS 파일을 축소하므로 파일 크기가 줄어들고 다운로드 속도가 빨라집니다.
c) CSS 스프라이트 사용-대부분 또는 모든 이미지를 스프라이트로 결합하면 여러 이미지 요청을 하나의 것으로 전환합니다. 그런 다음 background-image CSS 속성을 사용하여 필요한 이미지 섹션을 표시합니다.
d) 지연 로딩으로 이미지 다운로드를 지연 시키면 http 요청을 줄이는 데 도움이됩니다.
2. 더 많은 방문이 예상되는 경량 페이지를 준비하십시오.
a) 가능하면 이미지 나 플래시와 같은 장식 요소를 제외하십시오. 사이트 탐색 및 크롬에서 이미지 대신 텍스트를 사용하고 대부분의 콘텐츠를 HTML로 넣습니다.
b) 동적 페이지 대신 정적 HTML 페이지를 사용하십시오. 후자는 서버에 더 많은 부하를줍니다. 동적 페이지의 정적 출력을 캐시하여 서버로드를 줄일 수도 있습니다.
서버 레벨 개선 :
1. 호스팅 제공 업체에 문의하여 서버 시간 초과 값 을 줄입니다 (너무 낮아서는 안 됨).
시간 초과가 적 으면 연결이 곧 해제되므로 서버에서 더 많은 연결을 처리 할 수 있습니다.
2. 정적 데이터 캐싱을 위해 CloudFlare와 같은 타사 서비스를 사용 하고 DDOS와 같은 악의적 인 사용자 및 공격으로부터 웹 사이트를 보호하십시오.
3. 서버 하드웨어 업그레이드-필요한 경우 물리적 및 가상 메모리를 업그레이드하고 I / O 및 엔트리 프로세스 한계를 높입니다. 호스팅 제공 업체가 더 잘 도와 드릴 수 있습니다.
4. 동적 코드 캐시-APC를 사용하여 PHP opcode를 캐시합니다.
5. 부하 분산 -여러 부하 분산 서버에 부하를 분산시킵니다.
필요한 모든 조치가 취해 졌으면 이제 웹 사이트에 트래픽이 급증 할 준비가되었는지 확인해야합니다.
시뮬레이션 된 트래픽으로로드 테스트를 제공하는 loadimpact.com과 같은 일부 타사 서비스가 있습니다. 분석을 통해 웹 사이트에서 처리 할 수있는 부하량과 개선 할 수있는 사항을 이해하는 데 도움이됩니다.
또한 트래픽 스파이크 기간 동안 웹 사이트 백업 크론 작업 등과 같은 높은 CPU 사용량 작업을 피하십시오.
우선 Cloudflare를 추천합니다. 무료 기본 계정을 만들 수 있으며 로컬 데이터 센터를 통해 트래픽을 라우팅하여 서버 홉 양을 최소화합니다. Cloudflare는 컨텐츠 캐싱에 적합하며 DDOS 보호 기능이 있습니다.
그 외에는 서비스 계층에서 지방을 제거하십시오. 지나치게 많은 데이터베이스 쿼리로 인해 코드 병목 현상이 발생하거나 단순화 될 수있는 CPU 집약적 논리가 없는지 확인하십시오.
또한 모든 데이터베이스 쿼리를 캐시하십시오. 쿼리 캐싱에 대한 몇 가지 훌륭한 옵션은 Redis 또는 Memcache입니다. 컴파일되지 않은 언어를 사용하는 경우 OpCaching도 고려해야합니다.
그러나 가장 중요한 것은 정적 콘텐츠 (예 : CSS, js 및 이미지)를 가능한 한 최적화 된 상태로 유지하는 것입니다. 모든 Javascript를 축소하고 가능한 경우 모두 하나의 파일로 결합하십시오. 사이트에 포함 된 각 파일은 최종 사용자에게 도달하기 위해 여러 개의 서버 홉을 만들어야합니다.
압축 이미지를 통해 절약 할 수있는 대역폭과로드 시간을 과소 평가하지 마십시오!
마지막으로 New Relic과 같은 도구를 사용하여 성능 모니터링을 고려하십시오.
행운을 빌어 요!!
출처 : Alexa에 따르면 영국에서 12 번째로 가장 인기있는 사이트의 개발자 중 한 명입니다.
사이트로드 테스트를 고려하십시오. JMeter , The Grinder 및 Gatling 과 같은 무료 도구를 사용 하면 사이트 방문자를 많이 시뮬레이션 할 수 있습니다.
사전에 많은 트래픽의 영향을 테스트하여 수행 한 조정이 효과적인지 여부를 판별하고 추가 조정을 볼 수 있습니다.
1and1에 있다면 저렴한 호스팅을 찾고있을 것입니다. 저렴한 호스팅은 하나의 상자에서 모든 것을하는 경향이 있음을 의미합니다. 호스팅의 주요 문제점은 동일한 상자에 모든 것을 호스팅 할 때 리소스를 사이트의 중요한 부분으로 나누는 것입니다.
1과 1은 Plesk 또는 cPanel과 같은 제어판을 사용할 가능성이 높으므로 리소스와 경쟁하는 추가 항목이 있습니다. 관의 마지막 못은? 리소스가 부족합니다. 아마도 1 CPU (또는 가상 CPU)와 매우 작은 RAM이 있습니다 (2GB가 넘으면 놀랄 것입니다).
1and1을 버릴 때 확장 가능한 호스팅 공급자 (우리의 경우 Amazon Web Services)와 함께 갔으며 이전에는 할 수 없었던 몇 가지 작업을 수행했습니다.
AWS는 도시 (Azure, Rackspace 등)에서 유일한 게임은 아니지만 1and1이 요구에 맞게 확장 할 수 있는지 확인하십시오.
개인적인 경험을 통해 최고의 VPS조차도 한계가 있음을 알고있었습니다. 나는 진짜 평신도가 여기에 간다.
우리 스포츠 웹 사이트 중 하나가 VPS에서 호스팅되었습니다. 파키스탄과 인도의 경기에서 우리는 70,000 건 이상의 안타를 받았습니다. 우리는 4GB RAM과 2GHz 프로세싱, 1TB 대역폭, SSD 스토리지 및 기타 멋진 것들을 갖춘 Inmotinghosting VPS를 가지고있었습니다. 유료 버전의 Cloudflare도 활성화했습니다.
경기가 반쯤 끝났고 웹 사이트가 다운되었습니다. 경기 중 생방송은 없었으며 방문객 수는 7 만 명 이상 증가했습니다. 나중에 우리는 대역폭이 소비되고 소스 호스트가 작동하지 않으면 CDN이 쓸모가 없다는 것을 알았습니다.
레슨 : VPS를 받고 Cloudflare와 같은 CND로 조정하는 것 외에도 페이지 크기를 최소화하십시오. 작을수록 좋습니다. 트래픽을 처리하는 데 매우 편리한 페이지 캐싱 및 코드 축소를 사용할 수 있습니다.
"한 번에"를 잘 정의하지 않았습니다. 30 분 동안 20 만 명의 순 방문자를보고 있다고 가정 해 보겠습니다. 클릭 수를 늘리고 더 많은 페이지를 여는 방문자를 고려하지 않고 초당 111 건의 요청입니다.
가장 먼저 할 일은 비슷한 양의 트래픽을 처리하는 사람들의 Google 이야기입니다. 많은 사람들이 다른 사람들을 돕기 위해 블로그에 자신의 경험에 대해 글을 쓸 것입니다. 공유 호스팅에서 누군가의 이야기를 찾기가 매우 어렵다는 것을 알 수 있습니다. 그 이유가 있습니다. 고객에게 가장 가까운 데이터 센터를 사용하여 초보자를위한 Digital Ocean 또는 Amazon Web Services와 같은 솔루션을 살펴보십시오. 그리고 무료 계정 인 경우에도 모든 정적 리소스를 CloudFlare로 오프로드하는 것이 좋습니다.
그 외에도, 페이지의 상단과 하단에 타이밍 스크립트를 추가하여 코드가 동적이라고 가정하여 코드를 테스트하십시오. 숫자에 대한 내 가정이 정확하다고 가정하면 허용 가능한 성능을 유지하기 위해 각 페이지를 10 밀리 초 미만으로 제공 할 수 있어야합니다. 기본적으로 SSL을 통해 모든 요청을 처리하는 경우 폭풍이 지나가는 동안 며칠 동안 사용 중지하십시오.
또한 200,000 개가 매우 무섭게 들리지만 너무 무서워 할 필요는 없습니다 . 예를 들어, Paper magazine은 Kim Kardashian의 NSFW 사진을 게시 할 때이 기사 (SFW) 에 따르면 로드를 처리하는 데 중간 크기의 웹 서버와 Amazon ELB가 4 개 밖에 필요하지 않았습니다. 현재 설정으로 처리 할 것이라고는 생각하지 않지만 48 개의 코어가있는 16 개의 웹 서버가 필요하지는 않습니다.
이 오래된,하지만 아주 좋은 질문을 알고 몇 년 전에 주제에 대한 좋은 정보를 얻었 으면 좋겠다 ...
때때로 우리는 TV 네트워크에 특집 (학교 활동 관련) 사이트를 가지고 있습니다. 매우 적은 예산으로 운영되므로 "로드 밸런싱"이 솔루션입니다. VPS 상자는 요즘 꽤 저렴할 수 있으며 그 중 2-3 개에 내용을 미러링 / 복제합니다.
이 기사 를보고 "라운드 로빈"에 대해 읽으십시오.
로드 테스트에 대한 자세한 내용은 여기를 참조하십시오 .
처음으로 스파이크를 처리하기 시작했을 때 2-3 VPS 상자에 내용을 넣고 NS를 등록자 설정에 배치했습니다.
일주일 이내에 웹 사이트를 다시 작성하고, 공급자를 전환하고, CDN으로 컨텐츠를 마이그레이션하는 것이 좋습니다.
다른 답변에서 알 수 있듯이 트래픽이 크게 증가하기 위해 사이트를 준비하는 데 필요한 최소한의 작업입니다. 현재 1and1.co.uk를 사용하고 있지만 강력한 네트워크 엔지니어, DBA, 프로그래머 및 프런트 엔드 최적화 팀이 없을 것입니다.
일어날 것 같지 않습니까?
쇼핑 카트를 운영하는지 또는 정적 컨텐츠로 구현할 수 있는지 여부에 관계없이 웹 사이트에서 수행하는 작업에 대해서는 언급하지 않았습니다. 후자의 경우 전체 사이트를 정적 파일로 긁어 일반 사이트 대신 게시하면 쓰나미에서 살아남을 수 있습니다 (현재 버전을 먼저 백업하십시오).
또한 1and1 (신용 카드를 가지고)과 대화해야합니다.