Ho un sito Web Magento. Non ci sono utenti (massimo 2-3 alla volta).
Il nostro server è: CPU: 2000 MHz RAM: 2048 Mb HDD: 50000 Mb.
Ho installato ZendServerCE (apc + memcached + Zend Optimizer + Zend Data Cache). Ho disattivato l'appunto, perché il sito Web è stato caricato molto peggio. Ho impostato la struttura del tipo piatto, i dati reindicizzati e memorizzati nella cache nella console di amministrazione.
Quindi ho apc + Zend Optimizer + Zend Data Cache .
Il primo problema è che ho verificato il runtime come funziona la spedizione. La chiamata start_session () richiede circa 500-700ms. Sembra non essere un buon risultato. Perché così tanto tempo, non lo so.
Ho letto questo: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size e ho trovato le opzioni ottimali per il mio server.
All'ora:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
Vedete che 252/8887> 0,01, ma non troppo. È il valore ottimale che abbia mai ottenuto. Altri risultati sono iniziati da> 6.
Ecco 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 per qualche motivo non era buono. L'ho spento. Ma zend data cache e zend optimizer funzionano ancora.
4 APC sembra corretto. Per caricare l'azione del controller sono necessari 3-4 secondi per la prima volta (ho impostato die () per controllarlo) e per la prima volta sono necessari 1 - 1,3 secondi.
5 Dopo alcuni minuti ho riavviato mysql e ho ottenuto buoni risultati. Le pagine venivano caricate da 1,5 a 2,5 secondi. Ma ora (dopo diverse ore) ci vogliono 6-10 secondi. Non riesco a trovare il motivo.
Quindi vedi qualche configurazione errata qui? Potrebbe essere il mio server non adatto a Magento?
AGGIORNAMENTO 1: circa 600 categorie e 1000 prodotti oggi e circa 20000 categorie (per diversi webstore) e 1500-3000 prodotti in futuro.
Non ci sono molti attributi.
AGGIORNAMENTO 2 Ho notato che la console ssh funziona troppo lentamente. Ho riavviato il server e ora funziona velocemente. significa che ho un problema con la RAM. Non c'è abbastanza spazio.
È lo stato iniziale senza apache:
total used free shared buffers cached
Mem: 2048 600 1447
AGGIORNAMENTO 3 Ho capito. Ora viene caricato per 0,5-1,5 sec
Ecco la configurazione: 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
Tutto funziona perfettamente, ma rimane una domanda. APC mi mostra questa statistica:
Perché colpisce così piccolo? Qualche idea?
xhprof
entrare e provare a ottenere una visualizzazione di ciò che impiega più tempo a caricare. Si tratta di un server di produzione sotto carico o semplicemente per il test?