चेकआउट और चेकआउट करने के लिए कार्ट को गति देना क्रियाओं को सहेजना


18

मैं कई Magento CE दुकानें चला रहा हूं और उन्हें कैशिंग के साथ गति दे रहा हूं, हालांकि गाड़ी और चेकआउट अभी भी धीमा है। क्या किसी को इन पृष्ठों को गति देने में अनुभव या युक्तियां हैं?

शायद डेटाबेस के अनुकूलन के माध्यम से?

जब सर्वर पर धीमी क्वेरी लॉग में चेकआउट ऑर्डर से बचत होती है तो कुछ क्वेश्चन किए जाते हैं और डेटाबेस को अड़चन लगती है।


धीमी गति से क्या मतलब है? 1s? 5s? ... दुकानों के आकार (सरल उत्पादों की संख्या, कॉन्फ़िगर करने योग्य संख्या, बिक्री का आकार_फल_क्वॉट * टेबल और इतने पर) के बारे में कुछ विवरण प्रदान करें।
फ्लोरिनसेल

दुकान कितनी व्यस्त है, इस पर निर्भर करते हुए धीमे 5 से 10 सेकंड के बीच है। 50.000 सरल उत्पाद हैं, कोई अन्य प्रकार नहीं। Sales_flat_quote आईडी कल (इस समय कोई acces) को देखने के लिए है
Sander Mangel

1
आपके पास कितने शॉपिंग कार्ट मूल्य नियम हैं? वे गाड़ी को धीमा कर देते हैं। सर्विस पैक रिलीज़ में, Q1 / Q2 '13 से अपेक्षित इस मुद्दे को संबोधित करने की उम्मीद है
पिओट कमिंसकी

@macki इस समय कोई मूल्य नियम नहीं है, उल्लेख के लिए धन्यवाद। thats अच्छा पता करने के लिए
Sander Mangel

जवाबों:


27
  1. व्यक्तिगत अनुभव से, Mage_Rss मॉड्यूल को अक्षम करें, जो चेकआउट प्रक्रिया में 4 बार 'कैश क्लीन' को बाध्य करता है - यदि आप फाइलसिस्टम कैश का उपयोग कर रहे हैं तो बहुत महंगा है, शायद तब भी महंगा है जब आप डेटाबेस या मेमकास्ट कर रहे हैं।

  2. सीई केवल तब तक के लिए Mage_Downloadable को अक्षम करें जब तक आप डाउनलोड करने योग्य उत्पाद का उपयोग नहीं कर रहे हैं, इससे चेकआउट और कार्ट क्रियाओं में तेजी आएगी जब आपके पास कार्ट में कई आइटम होंगे क्योंकि चीजों पर पर्यवेक्षक हैं जैसे checkout_type_onepage_save_order_afterकि आइटमों के # द्वारा प्रतिक्रिया समय को गुणा करें। गाड़ी में।

  3. तार xhprof / xhgui और कुछ रूपरेखा करते हैं।


में गोता लगाने के एक अच्छा सप्ताहांत परियोजना की तरह धन्यवाद XHProf और XHGui लगता है
Sander Mangel

1
आपको वास्तव में mage_rss को निष्क्रिय करने या इसके पर्यवेक्षकों पर टिप्पणी करने का प्रयास करना चाहिए। गति को तुरंत बचाएं
STANISLAS PIERRE-ALEXANDRE

1
मैं प्रत्यक्ष प्रतिक्रियाओं का इंतज़ार करना चाहते हैं तो Mage_Rss अक्षम चाल ओपी के लिए काम करता है
philwinkle

2
मैं यह बताना चाहता हूं कि EE को एक निर्भरता के रूप में Mage_Downloadable की आवश्यकता है :Module "Enterprise_PricePermissions" requires module "Mage_Downloadable
-250

1
मैंने कभी वापस रिपोर्ट नहीं किया और इसके लिए मुझे खेद है। Mage_Rss को अक्षम करने से गति काफी बढ़ गई, Mage_Downloadable को अक्षम करने से कोई उल्लेखनीय प्रदर्शन में सुधार नहीं हुआ, लेकिन मेरा कहना है कि मैंने 'उचित' बेंचमार्क नहीं किया, अपने ब्राउज़र में सिर्फ कई रन बनाए।
Sander Mangel

4
  • मैन्युअल करने के लिए अपने अनुक्रमित सेट करें।
  • कैश टैग संग्रहण अक्षम करें

इन दोनों परिवर्तनों का प्रदर्शन पर एक व्यापक प्रभाव पड़ेगा क्योंकि यह मैगेंटो को कैश फ्लश करने से रोकता है और हर बार जब कोई ऑर्डर गुजरता है तो पुन: अनुक्रमण करता है।

यह एक लागत पर आता है, हालांकि, वह सामग्री परिणाम के रूप में बासी हो सकती है - स्टॉक स्तर आदि।


धन्यवाद, दोषपूर्ण स्टॉक का स्तर अधिकांश दुकानों पर एक मुद्दा है। लेकिन बीमार इसे स्टॉक प्रबंधन के बिना दुकानों के लिए ध्यान में रखते हैं!
Sander Mangel

2

यदि आप इसे प्रयोगात्मक तरीके से हल करना चाहते हैं, तो म्यूनिख, जर्मन में पहले मैगेंटो हैकाथॉन से एक विस्तार है:

https://github.com/magento-hackathon/MongoDB-OrderTransactions

वे आदेशों को एक mongo db में पंक्तिबद्ध करते हैं, यह विचार था, अगर mysql-server वापस लिखने के लिए लोड से मुक्त है। लेकिन मुझे नहीं पता कि यह परियोजना कितनी तैयार है। अफाक सभी लेखन का काम करता है, लेकिन पीछे के लेखन का नहीं।


धन्यवाद, मैं वास्तव में noSQL समाधान देख रहा था और यह एक अच्छा प्रारंभिक बिंदु हो सकता है!
सैंडर मंगल :

2

मुझे नहीं पता कि आपका Magento CE संस्करण आपके साथ संघर्ष कर रहा है। लेकिन मेरे CE 1.6 के साथ गंभीर प्रदर्शन के मुद्दे थे।
कारण: गलत और गायब सूचकांक। वे सीई 1.6.2 में तय किए गए
हैं। आप जाँच सकते हैं कि क्या यह आपकी मदद करता है।
मैंने 123 सेकंड से 4 सेकंड तक कुल 73 आइटम के साथ 38 लाइनों के लिए चेकआउट का समय कम कर दिया !!!!

यह आता है:

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/* Foreign Keys must be dropped in the target to ensure that requires changes can be done*/

ALTER TABLE `core_url_rewrite` 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID`  , 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID`  ;


/* Alter table in target */
ALTER TABLE `catalog_category_entity_varchar` 
DROP KEY `MAGMI_CCEV_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `catalog_product_bundle_stock_index` 
DROP KEY `PRIMARY`, ADD PRIMARY KEY(`entity_id`,`website_id`,`stock_id`,`option_id`) ;


/* Alter table in target */
ALTER TABLE `catalog_product_entity_media_gallery` 
DROP KEY `MAGMI_CPEM_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `core_url_rewrite` 
CHANGE `id_path` `id_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Id Path' after `store_id` , 
CHANGE `request_path` `request_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Request Path' after `id_path` , 
CHANGE `target_path` `target_path` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Target Path' after `request_path` , 
CHANGE `is_system` `is_system` smallint(5) unsigned   NULL DEFAULT 1 COMMENT 'Defines is Rewrite System' after `target_path` , 
CHANGE `options` `options` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Options' after `is_system` , 
CHANGE `description` `description` varchar(255)  COLLATE utf8_general_ci NULL COMMENT 'Deascription' after `options` , 
CHANGE `category_id` `category_id` int(10) unsigned   NULL COMMENT 'Category Id' after `description` , 
CHANGE `product_id` `product_id` int(10) unsigned   NULL COMMENT 'Product Id' after `category_id` , 
ADD KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID`(`product_id`) , 
DROP KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID` , 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID` 
FOREIGN KEY (`product_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE , 
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID`  ;


/* Alter table in target */
ALTER TABLE `eav_attribute` 
DROP KEY `MAGMI_EA_CODE_OPTIMIZATION_IDX` ;


/* Alter table in target */
ALTER TABLE `eav_attribute_option_value` 
DROP KEY `MAGMI_EAOV_OPTIMIZATION_IDX` ;


/* The foreign keys that were dropped are now re-created*/

ALTER TABLE `core_url_rewrite` 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID` 
FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE , 
ADD CONSTRAINT `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID` 
FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

1

बड़े डेटाबेस ऑपरेशंस को तेज करने का सबसे अच्छा तरीका है कि आप अपने डेटाबेस को अपने सर्वर पर रखें जो डेटाबेस के उपयोग के लिए अनुकूलित हो। बहुत कुछ ऐसा नहीं है जो चेकआउट क्षेत्र कोड-वार में सुधार किया जा सकता है (हालांकि कुछ प्रकार के उत्पाद, जैसे कि विन्यास योग्य, वास्तव में उद्धृत प्रक्रिया को कम कर सकते हैं) क्योंकि बहुत कम सुरक्षित रूप से कैश किया जा सकता है।


धन्यवाद, उसके लिए डर था। यह पहले से ही अलग डीबी सर्वर के साथ एक समर्पित स्थापना है। उम्मीद है कि वे दाना 2 में :) चेकआउट अनुकूलित कर देंगे
Sander Mangel

1
2.0 में अब तक बहुत सारे पुनर्लेखन शामिल हैं, जिससे हम आशा कर सकते हैं। ईमानदारी से, उत्पाद मॉडल खुद बहुत सारे होते हैं जो चेकआउट को धीमा कर देता है - इसे प्रत्येक उत्पाद के लिए टाइप इंस्टेंसेस पर पुनरावृति करना होता है, जबकि उद्धरण / ऑर्डर को परिवर्तित करना और एक महंगी प्रक्रिया हो सकती है।
एंड्रयू क्वाकेनबोस

1

हो सकता है कि आपके डीबी में रीड्स को विभाजित करने और लिखने के लिए देखें। आपको तत्काल प्रतिकृति के पास की आवश्यकता होगी, हालांकि ऐसा क्या है जो मुझे हमेशा इसे करने से चिंतित करता है, हालांकि अन्य लोगों के पास यह जानकारी हो सकती है कि इसे कैसे कॉन्फ़िगर किया जाए।


एचएम को यकीन नहीं है कि अगर ईमानदार होने के लिए एक विश्वसनीय समाधान है, तो अपूर्ण डेटा का एक बहुत बड़ा परिवर्तन जैसा लगता है। विचार वास्तव में अच्छा है!
Sander Mangel

मैं एक निश्चित सीमा तक सहमत हूँ और स्वीकार किया है कि मैंने वास्तव में इसे स्वयं कभी नहीं किया है, हालांकि मैं विभिन्न लोगों को ब्लॉग पोस्ट आदि लिखते हुए देखता हूं कि वे प्रदर्शन में एक उल्लेखनीय सुधार देख चुके हैं। अगर मुझे कुछ बेंचमार्क आदि मिलें तो मैं उन्हें पोस्ट कर दूंगा।
रिचर्ड क्लेवरले

धन्यवाद रिचर्ड, बीमार ने मेरी होस्टिंग कंपनी के साथ इस बारे में बात की है। मुझे लगता है कि इस तरह के सामान के साथ उनके पास बहुत अधिक अनुभव है। अगर मेरे पास एक और जानकारी है तो मैं इसे पोस्ट करूंगा
सैंडर मंगल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.