ฉันมีเว็บไซต์วีโอไอพี ไม่มีผู้ใช้ใด ๆ (สูงสุด 2-3 ครั้ง)
เซิร์ฟเวอร์ของเราคือ: CPU: 2000MHz RAM: 2048Mb HDD: 50000Mb
ฉันติดตั้ง ZendServerCE (apc + memcached + Zend Optimizer + Zend Data Cache) ฉันปิด memcached เนื่องจากเว็บไซต์โหลดมากที่สุด ฉันตั้งค่าโครงสร้างแบบแบน, ทำดัชนีใหม่และเก็บข้อมูลในคอนโซลผู้ดูแลระบบ
ดังนั้นผมจึงมีAPC + Zend Optimizer + Zend แคชข้อมูล
ปัญหาแรกคือฉันตรวจสอบรันไทม์ว่าทำงานอย่างไร start_session () การโทรใช้เวลาประมาณ 500-700ms ดูเหมือนว่าจะไม่ได้ผลดี ทำไมนานฉันไม่รู้
ฉันได้อ่านอันนี้แล้ว: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_sizeและหาตัวเลือกที่เหมาะสมที่สุดสำหรับเซิร์ฟเวอร์ของฉัน
ต่อชั่วโมง:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
คุณเห็นว่า 252/8887> 0.01 แต่ไม่มากเกินไป มันคุ้มค่าที่สุดที่ฉันเคยได้รับ ผลลัพธ์อื่นเริ่มต้นจาก> 6
นี่คือ my.cnf:
key_buffer = 48M
myisam_sort_buffer = 2M
sort_buffer = 2M
read_buffer_size = 2M
join_buffer = 2M
read_rnd_buffer = 2M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 50
table_cache = 256
#thread_concurrency = 10
query_cache_limit = 8M
query_cache_size = 98M
3. Memcached ด้วยเหตุผลบางอย่างไม่ดี ฉันปิดมัน แต่แคชข้อมูล zend และเครื่องมือเพิ่มประสิทธิภาพ zend ยังคงทำงานได้
4. APC ดูเหมือนถูกต้อง ในการโหลดการกระทำของคอนโทรลเลอร์ใช้เวลา 3-4 วินาทีเป็นครั้งแรก (ฉันตั้งค่าตาย () เพื่อตรวจสอบ) และเป็นครั้งแรกใช้เวลา 1 - 1.3 วินาที
5. หลังจากผ่านไปหลายนาทีฉันก็เริ่ม mysql ใหม่ฉันได้ผลดี กำลังโหลดหน้าเว็บจาก 1.5 ถึง 2.5 วินาที แต่ตอนนี้ (หลังจากผ่านไปหลายชั่วโมง) จะใช้เวลา 6-10 วินาที ฉันหาเหตุผลไม่พบ
ดังนั้นคุณเห็นการกำหนดค่าที่ไม่ถูกต้องที่นี่หรือไม่ เซิร์ฟเวอร์ของฉันอาจไม่เหมาะกับวีโอไอพีหรือไม่?
อัปเดต 1: ประมาณ 600 หมวดหมู่และ 1,000 ผลิตภัณฑ์วันนี้และประมาณ 20,000 หมวดหมู่ (สำหรับเว็บสโตร์ที่แตกต่างกัน) และ 1,500-3,000 ผลิตภัณฑ์ในอนาคต
มีคุณสมบัติไม่มาก
อัปเดต 2 ฉันไม่ได้สนใจว่าคอนโซล ssh ทำงานช้าเกินไป ฉันรีบูตเซิร์ฟเวอร์และตอนนี้ทำงานได้อย่างรวดเร็ว มันหมายความว่าฉันมีปัญหากับ RAM มีพื้นที่ไม่เพียงพอ
มันเป็นสถานะเริ่มต้นสิ่งที่ apache:
total used free shared buffers cached
Mem: 2048 600 1447
อัปเดต 3 ฉันได้รับแล้ว ตอนนี้มันถูกโหลด 0.5-1.5 วินาที
นี่คือการกำหนดค่า: mysql
[mysqld]
key_buffer_size = 256M
tmp_table_size = 32M
max_heap_table_size = 32M
myisam_sort_buffer = 4M
sort_buffer = 4M
read_buffer_size = 4M
join_buffer = 4M
read_rnd_buffer = 4M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 20
table_cache = 1024
innodb_buffer_pool_size = 128M
query_cache_limit = 24M
query_cache_size = 256M
PHP
[apc]
apc.stat=1
apc.enabled=1
apc.optimization=0
apc.cache_by_default=1
apc.shm_segments=10
apc.shm_size=256M
apc.ttl=0
apc.user_ttl=0
apc.num_files_hint=10000
;apc.mmap_file_mask="/tmp/apc"
apc.max_file_size=5M
apc.enable_cli=1
apc.mmap_file_mask="/tmp/apc.XXXXXX"
apc.slam_defense=0
apc.user_entries_hint=10000
ทุกอย่างสมบูรณ์แบบ แต่ยังคงมีคำถามหนึ่งข้อ APC แสดงสถิตินี้ให้ฉันเห็น:
ทำไมถึงมีขนาดเล็ก ความคิดใด ๆ
xhprof
และพยายามสร้างภาพข้อมูลของสิ่งที่ใช้เวลาในการโหลดมากที่สุด นี่เป็นเซิร์ฟเวอร์ที่ใช้งานจริงหรืออยู่ระหว่างการทดสอบหรือไม่