문제

이 질문은 일반적으로 프로그래밍과 관련이 없다고 생각하지만 그럼에도 불구하고 답은 다른 웹 개발자에게 흥미로울 수 있습니다.

빠른 웹 사이트를 갖기 위해 최소 요구 사항을 추정하는 방법이 궁금했습니다. 분명히 예상 방문자 수, 초당 클릭 수치 등으로 간주되어야하는 몇 가지 사실이 있습니다 ... 또한 웹 서버 (APACHE/LIGHTPD) 또는 메일 서버 (EXIM, SendMail,)와 같은 서비스를 실행합니다. ..)는 다른 요구로 끝날 수 있습니다.

아마도 좋은 웹 사이트를 알고 있거나 그러한 정보에서 필요한 서버 구성을 추정하는 방법에 대한 설명을 할 수 있습니까?

도움이 되었습니까?

해결책

이것은 과학보다 더 많은 예술입니다.

당신이 기억해야 할 것은 프로그래밍의 많은 것들과 마찬가지로, 웹 사이트는 체인에서 가장 느린 링크만큼 느리게 될 것이므로 대역폭, 웹 서버, 디스크 I/O, 메모리, 메모리, 메모리, 메모리, 메모리, 등의 병목 현상이 발생한다는 것입니다. 웹 사이트의 속도를 제한하는 데이터베이스, 방화벽 등.

튜닝 및 성장은 웹 사이트를 성장할 때 이러한 문제를 식별하고 해결해야합니다. 어느 시점에서 더 많은 RAM을 추가해야 할 수도 있습니다. 다른 CPU가 필요할 수 있습니다. 다른 시간에는 메모리를 추가하는 것이 메모리가 문제가되지 않기 때문에 쓸모가 없을 수 있습니다.

마찬가지로, 시스템 스왑 (페이지 결함)이 끊임없이 스왑되면서 집중 디스크 I/O로 메모리 부족을 마스킹 할 수 있지만 디스크 I/O는 문제가되지 않는 것처럼 메모리 부족을 집중 디스크 I/O로 마스킹 할 수 있습니다.

그래서 당신은 무엇을합니까?

첫 번째는 일반적인 사용자가 무엇을 할 것인지, 얼마나 많은 일을 할 것인지에 대해 식별하거나 합리적인 추측을해야한다는 것입니다. 이상적으로는 100 또는 1000 또는 JMeter와 같은 소프트웨어를 사용하여 필요한 많은 사용자를 모델링하여 웹 사이트가 어떻게 필요한지, 얼마나 많은 대역폭이 필요한지 등을 알 수 있습니다. 100, 500, 1000, 2000 사용자를 모델링하면 웹 사이트가 얼마나 선형 적으로 스케일링되는지 확인할 수 있습니다.

1000 명의 사용자를 지원하는 데 1 기가의 RAM이 필요하지만 2000은 4 개의 공연이 필요하다는 것을 알 수 있습니다. 이는 웹 사이트를 확장 할 수있는 문제를 촉진하는 비선형 확장 성의 예입니다. 그리고 그것은 성능 테스트로 드러날 것입니다.

솔직히 말해서, 하드웨어는 요즘 너무 저렴하여 가장 크고 가장 인기있는 사이트를 제외하고는 문제가되지 않습니다 ($ 10k는 각각 16g의 RAM과 4-8 코어를 가진 1 개 또는 2 개의 서버를 구입할 수 있습니다). 공유 및 VPS 호스팅은 일반적으로 필요한 많은 메모리, 대역폭 및 디스크 공간에 대해서만 지불하기를 원하기 때문에 다른 스토리입니다. 운 좋게도 이러한 종류의 솔루션은 당신이 아주 쉽게 업그레이드하는 경향이 있습니다 (적어도 결국 호스팅을 바치는 지점까지).

프로젝트가 시작될 때 "봉투의 뒷면"을 수행함으로써 더러운 추정치를 만들 수 있습니다. Key Queries를 실행하여 100 번 말하고 필요한 CPU 시간을 많이 해결하고, 100 번의 모형을 쳤다. 사용자가 사이트를 사용하는 방법에 대한 추측과 결합 된 이러한 대략적인 추정치는 필요한 것의 야구장 (2 ~ 3 배 이내)을 제공합니다.

다른 팁

이미 사용자, 서버 등에 대해 언급했습니다. 여기에 고려해야 할 사항이 더 있습니다.

  1. 트래픽이 높은 경우 클러스터 서버
  2. 서버의 물리적 위치 : 웹 사이트의 잠재 고객 대상을 찾아 해당 국가에 서버를 더 잘 찾으십시오.
  3. 재난 복구 계획. 더 빠른 웹 사이트를 갖는 것이 좋으며 복구 프로세스가 더 빠릅니다.
  4. 최고의 기술을 선택하고 AJAX와 같은 새로운 기술을 구현하고 가능한 한 서버 요청을 줄입니다.

무언가가 나오면 더 많은 것을 추가 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top