Ich habe eine Magento-Website. Es gibt keine Benutzer (maximal 2-3 gleichzeitig).
Unser Server ist: CPU: 2000 MHz RAM: 2048 MB Festplatte: 50000 MB.
Ich habe ZendServerCE installiert (apc + memcached + Zend Optimizer + Zend Data Cache). Ich habe memcached deaktiviert, weil die Website am schlechtesten geladen wurde. Ich habe eine flache Typstruktur festgelegt, Daten neu indiziert und zwischengespeichert in der Administratorkonsole.
Also habe ich apc + Zend Optimizer + Zend Data Cache .
Das erste Problem ist, dass ich zur Laufzeit überprüft habe, wie der Versand funktioniert. Der Aufruf von start_session () dauert ca. 500-700 ms. Scheint sein nicht gutes Ergebnis. Warum so lange, weiß ich nicht.
Ich habe diesen gelesen: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size und optimale Optionen für meinen Server herausgefunden.
Pro Stunde:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
Sie sehen, dass 252/8887> 0,01, aber nicht zu viel. Es ist der optimale Wert, den ich jemals bekommen habe. Andere Ergebnisse begannen bei> 6.
Hier ist 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 aus irgendeinem Grund war nicht gut. Ich habe es ausgeschaltet. Der Zend-Datencache und der Zend-Optimierer funktionieren jedoch weiterhin.
4. APC scheint richtig zu sein. Das Laden der Controller-Aktion dauert zum ersten Mal 3-4 Sekunden (ich setze dort die (), um sie zu überprüfen) und zum ersten Mal dauert es 1 - 1,3 Sekunden.
5. Nach einigen Minuten habe ich mysql neu gestartet und ein gutes Ergebnis erzielt. Die Seiten wurden von 1,5 bis 2,5 Sekunden geladen. Aber jetzt (nach einigen Stunden) dauert es 6-10 Sekunden. Ich kann den Grund nicht finden.
Sehen Sie hier also eine falsche Konfiguration? Vielleicht ist mein Server nicht für Magento geeignet?
UPDATE 1: ca. 600 Kategorien und 1000 Produkte heute und ca. 20000 Kategorien (für verschiedene Webstores) und 1500-3000 Produkte in der Zukunft.
Es gibt nicht viele Attribute.
UPDATE 2 Ich habe festgestellt, dass die SSH-Konsole zu langsam arbeitet. Ich habe den Server neu gestartet und jetzt funktioniert es schnell. Es bedeutet, dass ich ein Problem mit dem RAM habe. Es gibt nicht genug Platz.
Es ist der Anfangsstatus ohne Apache:
total used free shared buffers cached
Mem: 2048 600 1447
UPDATE 3 Ich habe es verstanden. Jetzt wird es für 0,5-1,5 Sekunden geladen
Hier ist die Konfiguration: 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
Alles funktioniert perfekt, aber eine Frage bleibt. APC zeigt mir diese Statistik:
Warum so kleine Treffer? Irgendwelche Ideen?
xhprof
und versuchen, eine Visualisierung dessen zu bekommen, was das Laden am meisten Zeit kostet. Ist dies ein Produktionsserver unter Last oder nur zum Testen?