Я налаштовую свою домашню сторінку для продуктивності, в даний час вона обробляє близько 200 запитів / секунду на 3.14.by, що з'їдає 6 SQL запитів, і 20 req / секунду на 3.14.by/forum, що є форумом phpBB.
Як не дивно, цифри приблизно однакові на деяких VPS і на спеціальному сервері Atom 330.
Програмне забезпечення сервера таке: Apache2 + mod_php prefork 4 дитини (тут пробували різні номери), php5, APC, nginx, записані для зберігання сеансів PHP.
MySQL налаштований з'їдати близько 30% доступної оперативної пам’яті (~ 150Mb на VPS, 700Mb на виділеному сервері)
Це виглядає так, що десь є вузьке місце, яке не дозволяє мені піднятися вище, якісь пропозиції? (тобто я знаю, що виконання менше 6 SQL зробить це швидше, але це не схоже на обмежуючий фактор, оскільки sqld з'їдає не більше ніж кілька% вгорі завдяки кешованим запитам)
Хтось перевіряв, що бити попередньо підготовленим 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. Як ви думаєте, що я можу тут налаштувати? (Я можу розщедрити 100-200Mb для MySQL)
[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/