답변:
각 아파치 작업자는 약 20-25MB를 소비하므로 하루에 8 시간 동안 1k 조회가 시간 간격으로 동일하게 간격을두면 초당 0.03 개의 요청 만 처리해야한다고 생각할 수 있습니다.
하루에 1 시간 만에 모든 트래픽이 집중되었다고 가정하면 (물론 그렇지는 않음) 초당 약 0.28 건의 요청을 처리해야합니다.
또 다른 문제는 DB를 확보 한 메모리의 양입니다. 그러나 알기는 간단하지만 고정 된 비용입니다.
최악의 경우 전체 DB를 전송해야합니다 (oh my god !,이 경우 SQL을 리팩토링하십시오! :)) .. 그래서 이전 수를 두 배로하십시오.
짧은 대답은 (IMHO) 128MB로 충분할 것입니다. 예상 한 트래픽을 고려할 때 서버가 유휴 상태이고 메모리가 오랫동안 비어 있습니다.
3 년 이후 256MB의 VPS에 20 개의 도메인이 있으며 괜찮습니다 ... 총 히트는 약 1500-2000입니다 ...
자, 요즘 메모리는 싸지 만, 여러분 ... 1 기가 바이트가 얼마인지 알고 있습니까?
추신 : 나는 리눅스 시스템에 대해서만 이야기하고 있습니다.
설명하는 트래픽이 적은 사용량의 경우 작은 계획 (256MB-384MB)을 사용하는 것이 좋습니다. Apache와 MySQL이 설치되면 기본 구성은 사용 가능한 더 많은 RAM을 사용하고 있다고 가정하여 문제를 일으킬 수 있습니다. 다음을 좋은 시작점으로 사용하고 필요에 따라 조정하십시오.
Apache 2 구성 파일 (일반적으로 /etc/apache2/apache2.conf 또는 /etc/apache2/httpd.conf에 있음)에서 :
StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000
MySQL 구성 파일 (일반적으로 /etc/mysql/my.cnf에 있음)에서 :
key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K
또한 InnoDB 테이블을 사용하지 않는 경우 다음 줄을 추가하여 InnoDB 지원을 비활성화해야합니다.
skip-innodb
나는 문제 가졌다 내 내가 FastCGI를 전환 할 때까지 RAM 512MB의에서. 그 결과 성능이 크게 향상되었습니다. 그때까지 30MB의 여유 공간이 있었으며 (물론 캐시는 계산하지 않음) 100MB 이상의 여유 공간이 생겼습니다.
마일리지는 물론 사이트 트래픽에 따라 다를 수 있습니다. 그리고 트래픽이 증가하기 시작하면 nginx로 전환 할 수 있습니다.
나 자신을 위로하기 위해 1GB로 늘었습니다.
1GB로는 괜찮을 것이지만 가능하다면 2GB로 가십시오. 대부분의 최신 OS의 주요 성능 단계입니다.
Apache 대신 nginx + php-fastcgi를 사용하지만 응용 프로그램로드는 매우 비슷합니다. 서브 버전 액세스에 svn + ssh를 사용하므로 저장소에 액세스 할 때를 제외하고는 svnserve 프로세스가 실행되지 않습니다. 이것은 모두 Ubuntu 8 LTS에서 실행됩니다.
지금은 256mB를 사용하는 174mB에서 실행 중이며 웹 사이트는 매우 반응이 뛰어납니다 (Wordpress보기의 평균 500ms 응답 시간)
total used free shared buffers cached
Mem: 256 252 3 0 22 56
-/+ buffers/cache: 174 81
Swap: 511 12 499
Apache + mod_php 대신 nginx 또는 lighttpd와 같은 경량 프론트 엔드 웹 서버를 보는 것이 좋습니다. php-fastcgi에 대한 Apache + mod_fastcgi 프록 싱도 메모리를 덜 차지합니다.
아파치 경로를 내려 가면 내 직감에 따르면 512mB가 아마도 트릭을 할 것이라고 말합니다. 1 ~ 2gB의 메모리는 특히 과도하게 많은 구성에 도달 할 때 대부분의 VPS 제공 업체가 비용을 확장하는 방식을 고려할 때 상당한 오버 킬로 보입니다.
나는 이것을 잠시 동안 고투 해왔다.
AlbertT의 설정은 훌륭하게 작동했습니다. mysql 설정은 명확한 차이를 만들었으며 이제는 사이트를 탐색합니다. http://laterboltz.com
MySQL 구성 파일 (일반적으로 /etc/mysql/my.cnf에 있음)에서 :
key_buffer = 16K max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K
또한 InnoDB 테이블을 사용하지 않는 경우 다음 줄을 추가하여 InnoDB 지원을 비활성화해야합니다.
건너 뛰기 innodb
apache2.conf
. 그들 모두를 변경? 그들은 표시되어 있습니다 :prefork MPM
,worker MPM
,event MPM