나는 홈페이지를 성능 조정을 위해 조정하고 있으며, 현재 3.14.by에서 약 200 개의 요청을 처리하여 6 개의 SQL 쿼리를 사용하고 3.14.by/forum에서 20 req / second를 phpBB 포럼입니다.
이상하게도 일부 VPS 및 전용 Atom 330 서버에서 숫자는 거의 같습니다.
서버 소프트웨어는 다음과 같습니다 : Apache2 + mod_php prefork 4 개의 자식 (여기서 다른 숫자를 시도), php5, APC, nginx, PHP 세션 저장을위한 memcached.
MySQL은 사용 가능한 RAM의 약 30 %를 소비하도록 구성됩니다 (VPS에서 ~ 150Mb, 전용 서버에서 700Mb)
이것은 어딘가에 병목 현상이있는 것 같습니다. 어떤 제안도 있습니까? (즉, 6 개 미만의 SQL을 수행하면 더 빠를 수 있지만 sqld는 캐시 된 쿼리로 인해 최상위 %를 몇 % 이상 먹지 않으므로 제한 요소처럼 보이지 않습니다)
누구든지 preforked apache2를 차고 nginx + php를 떠나는 것이 훨씬 빠르다는 것을 테스트 했습니까?
더 많은 벤치 마크
Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly.
Small "Hello world" php script: 458 r/s via ngin+apache2.
업데이트 : 병목 현상은 캐시 된 데이터의 MySQL 성능으로 나타납니다. 단일 SQL이 포함 된 페이지는 354req / sec를 표시하고 6 개의 SQL은-180 req / sec입니다. 내가 여기서 조정할 수 있다고 생각하십니까? (MySQL의 경우 100-200Mb를 포크 아웃 할 수 있음)
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
default-character-set=cp1251
collation-server=cp1251_general_cs
skip-character-set-client-handshake
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
key_buffer = 16M
max_allowed_packet = 8M
thread_stack = 64K
thread_cache_size = 16
sort_buffer_size = 8M
read_buffer_size = 1M
myisam-recover = BACKUP
max_connections = 650
table_cache = 256
thread_concurrency = 10
query_cache_limit = 1M
query_cache_size = 16M
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 8M
[mysql]
[isamchk]
key_buffer = 8M
!includedir /etc/mysql/conf.d/