Magento API performant nutzen

Transcription

Magento API performant nutzen
Magento API
performant nutzen
Meet Magento #4.10
Dominik Krebs
Themen
_Vorstellung NETZKOLLEKTIV
_Performance der Magento API
_Best Practices zur Optimierung
_Fallbeispiel
E-Commerce Lösungen auf hohem Niveau
E-Commerce
www.skidress.de
SyncAnt &
Magento API
Nutzung seit mehr als
zwei Jahren
www.syncant.de
Core API Extension
Erweiterung seit über einem Jahr
Magento API
Google Suche nach »Magento API«
Magento API
= langsam?
_ mit einem Server gleicher Leistung ist Magento langsam
_ Magento benötigt mehr Performance als prozedural
programmiertes Shop-System (vgl. XT-Commerce)
_ Flexibilität & Wartbarkeit wird durch Performance-Hunger
erkauft
Flaschenhälse
_ Datenbank
_ Application-Server
_ Verbindungsgeschwindigkeit
Warum ist
Magento
langsam?
_ Flexibilität kostet Leistung
_ Entity-Attribute-Value Model
_ verteilte Datenbanktabellen
_ keine vollständige Ausnutzung der Datenbankperformance
_ Datenbanken sind optimiert auf Tabellen mit Attributen
_ Joins kosten Arbeitsspeicher
API optimiert
Best Practices zur performanten
Verwendung
6 Punkte Plan
1_ Magento richtig konfigurieren
2_ Application-Server optimieren
3_ Datenbank-Server optimieren
4_ Verbindungsgeschwindigkeit überprüfen
5_ Anfragen reduzieren
6_ Optimierte Methoden verwenden
1_Magento
richtig
konfigurieren
_ Caches aktivieren
_ (Magento Compiler verwenden)
2_ApplicationServer
optimieren
_ Bytecode-Cache verwenden
_ Alternative PHP-Cache
_ X-Cache
_ Zend Optimizer
_ Memcached verwenden
_ nur benötigte Apache-Module
_ nur benötigte PHP-Module laden
_ keep-alive verwenden
3_DatenbankServer
optimieren
_ query_cache_size
_ query_cache_limit
_ innodb_buffer_pool_size
_ table_cache
4_Verbindungsgeschwindigkeit
überprüfen
_ Webservice über XML bedeutet Overhead
_ Bilder übertragen über DSL?
_ jede Anfrage benötigt zusätzliche Zeit
5_Anfragen
reduzieren
_ je weniger Anfragen, desto weniger Zeitaufwand
_ mittels Hash erkennen was sich verändert hat
_ nur veränderte Daten aktualisieren
_ Anfragen cachen - soweit möglich (lesende Anfragen)
_ Methodensignaturen cachen (system.methodSignature)
_ Multi-Calls verwenden
5_Anfragen
reduzieren
6_optimierte
Methoden
verwenden
_ optimierte Methoden führen mehrere Aktionen
auf einmal durch
_ ähnlich Multi-Call
_ weniger XML-Daten - weniger Overhead
6_optimierte
Methoden
verwenden
_ catalog_product.delete(array(1,2,3,4,5))
statt
_ catalog_product.delete(1)
_ catalog_product.delete(2)
_ ...
Fallbeispiel
Verwendung der Magento API bei
SyncAnt
SyncAnt
_ Abgleich der JTL WaWi mit Magento
_ konsequente Verwendung der API
_ Entstehung der Magento Core API
Extension
SyncAnt
_ Synchronisation von bis zu 10.000 Artikeln
_ bei täglichem Abgleich
_ unidirektional (von JTL nach Magento)
_ Dauer - je nach Änderungsvolumen - zwischen einer und
zehn Stunden
Diskussion
_ Erfahrungen
_ Fragen
_ Anregungen