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