Tôi đang điều chỉnh trang chủ của mình để thực hiện, hiện tại nó xử lý khoảng 200 yêu cầu / giây trên 3.14.by trong đó có 6 truy vấn SQL và 20 req / giây trên 3.14.by/forum là diễn đàn phpBB.
Thật kỳ lạ, con số gần giống nhau trên một số VPS và máy chủ Atom 330 chuyên dụng.
Phần mềm máy chủ như sau: Apache2 + mod_php prefork 4 con (đã thử các số khác nhau ở đây), php5, APC, nginx, memcached để lưu trữ phiên PHP.
MySQL được cấu hình để ăn khoảng 30% RAM có sẵn (~ 150Mb trên VPS, 700Mb trên máy chủ chuyên dụng)
Điều này có vẻ như có một nút cổ chai ở đâu đó không cho phép tôi đi lên cao hơn, có gợi ý nào không? (tức là tôi biết rằng làm ít hơn 6 SQL sẽ làm cho nó nhanh hơn, nhưng điều này không giống như một yếu tố hạn chế, vì sqld ăn không quá vài% trong các truy vấn được lưu trong bộ nhớ cache)
Có ai đã thử nghiệm rằng đá apache2 đã được làm sẵn và chỉ để nginx + php nhanh hơn nhiều chưa?
Một số điểm chuẩn khác
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.
Cập nhật: Có vẻ như nút cổ chai là hiệu năng của MySQL trên dữ liệu được lưu trữ. Trang có SQL duy nhất hiển thị 354req / giây, với 6 SQL - 180 req / giây. Bạn nghĩ gì tôi có thể điều chỉnh ở đây? (Tôi có thể bỏ ra 100-200Mb cho 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/