我正在调整主页的性能,目前在3.14.by上它处理大约200个请求/秒,它吃掉6条SQL查询,在3.14.by/forum上它是phpBB论坛,每秒处理20个请求/秒。
奇怪的是,某些VPS和专用Atom 330服务器上的数字几乎相同。
服务器软件如下:Apache2 + mod_php prefork 4个子代(在此处尝试使用不同的数字),php5,APC,nginx,用于PHP会话存储的内存缓存。
MySQL配置为占用大约30%的可用内存(VPS上约为150Mb,专用服务器上约为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。您认为我可以在这里进行哪些调整?(我可以为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/