ฉันกำลังปรับแต่งหน้าแรกของฉันเพื่อประสิทธิภาพขณะนี้สามารถจัดการได้ 200 คำขอ / วินาทีใน 3.14.by ซึ่งกิน 6 คิวรี่ SQL และ 20 รีคิว / วินาทีบน 3.14.by/forum ซึ่งเป็นฟอรัม phpBB
น่าแปลกที่ตัวเลขมีความเหมือนกันใน VPS และเซิร์ฟเวอร์ Atom 330 โดยเฉพาะ
ซอฟต์แวร์เซิร์ฟเวอร์มีดังต่อไปนี้: Apache2 + mod_php prefork 4 childs (ลองตัวเลขที่แตกต่างกันที่นี่), php5, APC, nginx, memcached สำหรับการจัดเก็บเซสชัน PHP
MySQL ถูกกำหนดให้กิน RAM ประมาณ 30% (~ 150Mb บน VPS, 700Mb บนเซิร์ฟเวอร์เฉพาะ)
ดูเหมือนว่ามีคอขวดบางแห่งที่ไม่ยอมให้ฉันไปสูงกว่านี้มีข้อเสนอแนะอะไรบ้าง? (เช่นฉันรู้ว่าการทำ SQL น้อยกว่า 6 จะทำให้เร็วขึ้น แต่สิ่งนี้ดูเหมือนจะไม่เป็นปัจจัยที่ จำกัด เนื่องจาก sqld กินได้ไม่เกินสองสาม% เนื่องจากแบบสอบถามที่เก็บไว้)
มีใครทดสอบว่าการเตะ apache2 preforked และปล่อยให้เพียงแค่ 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 / วินาที, 6 SQL's - 180 req / วินาที คุณคิดว่าฉันสามารถปรับแต่งที่นี่ได้อย่างไร (ฉันสามารถแยกออกจาก 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/