คำถามติดแท็ก performance

แสดงคำถามที่เกี่ยวข้องกับประสิทธิภาพของวีโอไอพี

3
ประสิทธิภาพ: เพิ่มระดับสต็อกสินค้าคงคลังในรายการผลิตภัณฑ์ list.phtml ทุกประเภทผลิตภัณฑ์
TL; DR , ความต้องการคือการมีระดับสต็อคสินค้าคงคลังที่แสดงในหน้ารายการผลิตภัณฑ์หมวดหมู่ที่มีการสืบค้น / หน่วยความจำเพิ่มเติมเล็กน้อยเพียงเล็กน้อยโดยคำนึงถึงประสิทธิภาพที่สอดคล้องกับกรอบของวีโอไอพี หลังจากอ่านบทความวินัย Kopp ในการพรีโหลดสำหรับความยืดหยุ่น วิธีที่ดีที่สุดในการรวมระดับสต็อกสินค้าคงคลังในหน้ารายการผลิตภัณฑ์หมวดหมู่คือ ( list.phtml ) ที่มีการค้นหา / โหลดเพิ่มเติมสำหรับการปฏิบัติงานให้น้อยลง ฉันรู้วิธีการบางอย่าง: afterLoad ()ดูเหมือนว่าทำงานได้ดีกับmedia_galleryการรวมโดยไม่มีการค้นหาเพิ่มเติม แต่ฉันไม่ประสบความสำเร็จในการใช้วิธีการเดียวกันกับคลังโฆษณา $attributes = $_product->getTypeInstance(true)->getSetAttributes($_product); $media_gallery = $attributes['media_gallery']; $backend = $media_gallery->getBackend(); $backend->afterLoad($_product); Direct SQLเพื่อรวบรวมข้อมูลที่ต้องการควบคู่ไปกับการรวบรวมด้วยproduct_idคีย์เช่น แต่มองหาวิธีการเพิ่มเติมผ่านกรอบ ขณะนี้ฉันกำลังโหลดstock_itemวัตถุผ่าน: $_product->load('stock_item')->getTotalQty(); ใช้งานได้จริง แต่ฉันสังเกตเห็นว่ามีการเพิ่มข้อความค้นหาเพิ่มเติมเพื่อรับผลรวมสต็อคสินค้าคงคลังของผลิตภัณฑ์ทั้งหมดในคอลเลกชัน ... __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) …

1
การสืบค้นข้อมูลคุณลักษณะรายการสินค้า
ฉันได้เพิ่มหนึ่งตัวกรองในวิธี_getProductCollection() การเรียนMage_Catalog_Block_Product_List ดังต่อไปนี้ protected function _getProductCollection() { ... $this->_productCollection = $layer->getProductCollection(); $this->_productCollection->getSelect()->joinInner( array('cpe' => 'catalog_product_entity'), 'e.entity_id = cpe.entity_id' ) ->where("cpe.type_id = 'simple'"); ... } โค้ดด้านบนนี้ใช้งานได้ดีตั้งแต่ Magento เวอร์ชั่น 1.7 แต่เมื่อใดก็ตามที่ฉันเขียนโค้ดต่อไปนี้มันจะให้ ไม่พบคอลัมน์: 1054 คอลัมน์ที่ไม่รู้จัก 'e.type_id' ใน 'where clause' ความผิดพลาด รหัส (ซึ่งไม่ทำงาน) protected function _getProductCollection() { ... $this->_productCollection = $layer->getProductCollection(); $this->_productCollection ->addAttributeToSelect('type_id') ->addAttributeToFilter('type_id','simple'); …

2
ตกลงเพื่อตัดทอนรายงาน _viewed_product_index
ฉันอ่านรายชื่อของตารางที่สามารถตัดทอนได้ ( /programming/12205714/list-of-tables-to-safely-truncate-in-magento ) และไม่เห็น report_viewed_product_index ตารางมีขนาดใหญ่มากและใช้เวลานานในการกู้คืนฐานข้อมูล ปลอดภัยไหมที่จะตัดทอนข้อมูลนี้หรือลบข้อมูลที่เก่าที่สุดอย่างน้อยที่สุด?

4
Magento 2.2 มักใช้งานโปรเซสเซอร์ช้ามากอย่างมาก 100% หลังจากการติดตั้ง: อัพเกรด
ฉันกำลังทำงานอยู่Magento 2.2, php7, Apache2บนAmazon AWS EC2 c4.largeอินสแตนซ์ แต่แม้กรณี t2.micro มักจะดีเมื่อฉันใช้มันเป็นเซิร์ฟเวอร์การพัฒนา ด้วยเหตุผลบางครั้งทุกครั้งเมื่อฉันเรียกใช้การตั้งค่า: อัปเดตหลังจากอัปเดตหนึ่งในไฟล์การติดตั้งในหนึ่งในโมดูลที่กำหนดเองของฉันหรือหลังจากการติดตั้งโมดูลบุคคลที่สามเซิร์ฟเวอร์ของฉันจะช้ามากในการโหลดหน้าการโหลดหน้านั้นใช้เวลา 1 นาที + และจะอยู่ที่ 25% การใช้งาน cpu เมื่อไม่โหลดหน้า มีผลกับเว็บไซต์คุณภาพเยี่ยมที่ฉันเรียกว่าการติดตั้ง: อัปเกรดหน้าเว็บอื่น ๆ ที่ติดตั้งคุณภาพเยี่ยมในเซิร์ฟเวอร์เดียวกันจะยังคงโหลดที่ความเร็วปกติ บางครั้งปัญหาได้รับการแก้ไขโดยการลบโมดูลที่เพิ่งอัพเกรดรีสตาร์ทเซิร์ฟเวอร์แล้วติดตั้งโมดูลใหม่โดยไม่มีการเปลี่ยนแปลงรหัสบางครั้งการติดตั้งครั้งที่สอง: อัพเกรดแก้ไขปัญหาและบางครั้งดูเหมือนว่าวิธีเดียวที่ฉันสามารถแก้ไขได้คือ โดยการติดตั้งใหม่อย่างสมบูรณ์Magento 2และโมดูล ฉันเคยมีสิ่งนี้เกิดขึ้นMagento 2.1.6, 2.1.8, 2.1.9และ2.2ชุดรูปแบบและโมดูลต่าง ๆ ทุกชนิดที่ไม่มีใครดูเหมือนจะมีปัญหากับโหมดเริ่มต้นสำหรับนักพัฒนาและผู้ผลิต แก้ไข: หมายเหตุสำคัญ หากคุณมีปัญหานี้และเช่นเดียวกับฉันมั่นใจว่าคุณไม่เคยปิดการใช้งานแคชของคุณมีปัญหาที่รับทราบในขณะนี้ (Magento 2.3) ซึ่งการทำงานcomposer updateของแคชทั้งหมดของคุณเป็นครั้งคราว ดังนั้นแม้ว่าคุณจะคิดว่าแคชของคุณเปิดใช้งานมันก็คุ้มค่าที่จะตรวจสอบอีก

3
ภาพคุณภาพเยี่ยมและคงที่ใน CDN
เรากำลังตรวจสอบการปรับปรุงความเร็วของวีโอไอพีเพิ่มเติม สิ่งที่เราเห็นตอนนี้คือการตั้งค่าต่อไปนี้หน้าจะบิน เฉพาะภาพที่มาในภายหลัง ไฟล์หลักจะถูกส่งในสองสามมิลลิวินาที แต่เวลาในการโหลดยังคงเป็น 2 วินาทีเนื่องจากภาพ แคชผู้วิเศษ รวม css / js ย่อ apc + memcache htaccess tweaks เซสชัน / แคชบน tmpfs คำถามของฉัน: ขั้นตอนในการตั้งค่า CDN (บนเซิร์ฟเวอร์ของฉันเอง) คืออะไร? (และมันช่วยได้จริงหรือ) ฉันเข้าใจว่ามันเป็นแบบนี้ (แต่มันไม่ทำงาน): สร้างโดเมนย่อย cdn เปลี่ยนรากเอกสาร (และ / หรือทำไมจึงตั้งค่า cname?) เปลี่ยนการตั้งค่า

2
เวลาในการโหลดหน้าไม่สอดคล้องกัน
ฉันสนิทกับการทำโครงการวีโอไอพีขนาดใหญ่และหันมาให้ความสำคัญกับการปรับปรุงความเร็วของวีโอไอพี ในฐานะที่เป็นส่วนนำของฉันเป็นนักพัฒนา front-end ทำโครงการขนาดใหญ่ในบ้านนี้และหาสิ่งที่ฉันไป ฉันมีวีโอไอพีสำหรับพัฒนาบนเซิร์ฟเวอร์เสมือนของ Media Temple ที่มี RAM 2GB เมื่อเร็ว ๆ นี้ฉันมีผลิตภัณฑ์มากถึง 600 รายการและมีคุณลักษณะที่แตกต่างกันประมาณ 25 รายการสำหรับแต่ละผลิตภัณฑ์ (รวมคุณสมบัติที่ไม่ซ้ำกันประมาณ 300 รายการ) และอาจมี 50 หมวดหมู่ ฉันลบสิ่งเหล่านี้ทั้งหมดเพื่อแก้ไขปัญหาความเร็วในการโหลดประมาณ 15 วินาที อย่างไรก็ตามความเร็วในการโหลดของฉันยังคงยาวนานและไม่สอดคล้องกัน ฉันโหลดหน้าแรกของฉันใหม่ด้วย Firebug รายงาน 500ms สำหรับการตอบสนองและฉันโหลดอีกครั้งทันทีและรายงานมากกว่า 9 วินาที นี่เป็นปัญหาเซิร์ฟเวอร์หรือบางสิ่งบางอย่างกับ Magento หรือไม่? ฉันจะทำการทดสอบแบบนี้ได้อย่างไร

1
Magento 2: บันทึกการสืบค้นที่ช้า
ย้อนกลับไปใน M1 คุณสามารถบันทึกคิวรีช้าโดยแก้ไขตัวแปรต่อไปนี้ในlib/Varien/Db/Adapter/Pdo/Mysql.php: /** * Write SQL debug data to file * * @var bool */ protected $_debug = false; /** * Minimum query duration time to be logged * * @var unknown_type */ protected $_logQueryTime = 0.05; /** * Log all queries (ignored minimum query duration time) * * …

3
Magento 1: การปรับปรุงประสิทธิภาพเพื่อลบเอนทิตี
ฉันกำลังพยายามปรับปรุงสองโมดูลเกี่ยวกับประสิทธิภาพ บางท่านอาจรู้จักการใช้walk()วิธีการในการรวบรวมซึ่งมีประโยชน์มากในการหลีกเลี่ยงการวนซ้ำผ่านผลิตภัณฑ์โดยตรง ยิ่งไปกว่านั้นและขอบคุณ @Vinai เราสามารถใช้delete()วิธีการรวบรวมได้เช่นกัน แต่ฉันสังเกตเห็นว่าไฟล์ดั้งเดิมของ Magento 1 ไม่ได้ใช้วิธีการใด ๆ ในการลบ หนึ่งในรหัสที่เลวร้ายที่สุดที่ผมเคยเห็นเป็นmassDelete()วิธีการจากการapp/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.phpที่ผลิตภัณฑ์จะถูกโหลดในวงก่อนที่จะลบ foreach ($productIds as $productId) { $product = Mage::getSingleton('catalog/product')->load($productId); Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product)); $product->delete(); } ดังนั้นฉันจึงทำการทดสอบประสิทธิภาพเพิ่มการเรียกการบันทึกเพื่อตรวจสอบเวลาที่ใช้และการใช้หน่วยความจำสำหรับการลบผลิตภัณฑ์ 100 รายการ ทดสอบ 1: walkวิธีการ ฉันแทนที่รหัสเดิมที่วางไว้ด้านบนด้วยรหัสนี้: $collection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('entity_id') ->addIdFilter($productIds) ->walk('delete'); และผลลัพธ์ของฉันมีดังต่อไปนี้บนเซิร์ฟเวอร์ dev ของฉันเส็งเคร็ง (โดยเฉลี่ยจากการทดสอบ 10 ครั้ง): รหัสเดิม: 19.97 วินาทีใช้ 15.84MB รหัสที่กำหนดเอง: …

2
วิธีระบุนามสกุลที่“ โทรศัพท์กลับบ้าน”
มีวิธีการระบุรหัสที่ส่งการร้องขอ HTTP ไปยังเซิร์ฟเวอร์ระยะไกลในพื้นหลังหรือไม่? ฉันสังเกตเห็นว่าเมื่อฉันมีการต้อนรับที่ขาด ๆ หาย ๆ บนเครื่องของฉันร้านค้าจำนวนมากใช้เวลาโหลดนานแม้กระทั่งทำงานบน localhost ฉันรู้สึกว่าเป็นเพราะเซิร์ฟเวอร์ระยะไกลใช้เวลานานในการตอบสนองเนื่องจากการเชื่อมต่อขาด ๆ หาย ๆ ของฉัน ฉันต้องการระบุคำขอเหล่านี้และลบออกเพราะฉันกลัวว่าพวกเขาอาจชะลอการติดตั้งสดเช่นหากเซิร์ฟเวอร์ภายนอกไม่ทำงานหรือช้า ...

2
เร่งความเร็ววีโอไอพีสบู่ v1
ฉันมีคำถามหลายข้อสำหรับนักพัฒนาคุณภาพเยี่ยม: เป็นไปได้หรือไม่ที่จะปรับปรุงความเร็วของ magento v1 soap api? เมื่อร้องขอข้อมูลจะมีค่าใช้จ่าย 1.5 วินาทีสำหรับ magento ในการรวบรวมข้อมูลอย่างง่ายเช่นที่อยู่ลูกค้า ฯลฯ หากต้องการขอโหนดข้อมูลที่เกี่ยวข้องหลายรายการอาจมีค่าใช้จ่ายได้อย่างรวดเร็วประมาณ 5-7 วินาที ตอนนี้ฉันทำตามคำขอเหล่านี้ผ่านทางคำขอ AJAX เพื่อให้ส่วนติดต่อของหน้าโหลดได้อย่างรวดเร็ว หรือจะเป็นการดีกว่าถ้าเขียนใบสมัครของฉันเองเพื่อให้ข้อมูลที่เกี่ยวข้องโดยตรงจาก magento db? มันไม่ซับซ้อนของ db และถ้าฉันทำแบบสอบถามโดยตรงโหลดภายใน 100 วินาทีกับผลลัพธ์ ... ข้อพิจารณาเดียวที่ฉันมีกับตัวเลือกนั้นคือ: เกิดอะไรขึ้นถ้าวีโอไอพีอัพเดตและเปลี่ยนแปลงมันเป็นรูปแบบฐานข้อมูล หรือการตั้งค่าฐานข้อมูลของวีโอไอพีนั้นค่อนข้างจะปลอดภัย / ลงล่างได้หรือไม่? ใครบ้างมีประสบการณ์กับสิ่งนี้และเรื่องราวความสำเร็จหรือ faillure ของพวกเขา? ฉันต้องทำการสืบทอดที่ได้รับการบอกกล่าวเพื่อให้สามารถรู้วิธีดำเนินการต่อ
10 performance  api 

9
การโหลดหน้าวีโอไอพีใช้เวลานานเกินไป
ฉันมีเว็บไซต์วีโอไอพี ไม่มีผู้ใช้ใด ๆ (สูงสุด 2-3 ครั้ง) เซิร์ฟเวอร์ของเราคือ: CPU: 2000MHz RAM: 2048Mb HDD: 50000Mb ฉันติดตั้ง ZendServerCE (apc + memcached + Zend Optimizer + Zend Data Cache) ฉันปิด memcached เนื่องจากเว็บไซต์โหลดมากที่สุด ฉันตั้งค่าโครงสร้างแบบแบน, ทำดัชนีใหม่และเก็บข้อมูลในคอนโซลผู้ดูแลระบบ ดังนั้นผมจึงมีAPC + Zend Optimizer + Zend แคชข้อมูล ปัญหาแรกคือฉันตรวจสอบรันไทม์ว่าทำงานอย่างไร start_session () การโทรใช้เวลาประมาณ 500-700ms ดูเหมือนว่าจะไม่ได้ผลดี ทำไมนานฉันไม่รู้ ฉันได้อ่านอันนี้แล้ว: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_sizeและหาตัวเลือกที่เหมาะสมที่สุดสำหรับเซิร์ฟเวอร์ของฉัน ต่อชั่วโมง: Key_read_requests = 8887 …

2
OpCache - การกำหนดค่าที่แนะนำสำหรับ Magento2
ฉันทำงานกับ Magento 2 stack ฉันกำลังนำการกำหนดค่า Magento 1 OpCache ของฉันกลับมาใช้ใหม่ ฉันได้เรียนรู้แล้วว่าตอนนี้เราจำเป็นต้องเปิดใช้งานความคิดเห็น แต่ฉันค่อนข้างมั่นใจว่าสามารถปรับปรุงค่าอื่น ๆ ได้ดังนั้นนี่คือการกำหนดค่าปัจจุบันของฉัน: [opcache] opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=256 opcache.interned_strings_buffer=12 opcache.max_accelerated_files=65406 // thanks Mage2.Pro! ;opcache.max_wasted_percentage=5 ;opcache.use_cwd=1 opcache.validate_timestamps=0 ;opcache.revalidate_freq=2 ;opcache.revalidate_path=0 ;opcache.save_comments=0 ;opcache.load_comments=0 opcache.fast_shutdown=1 opcache.enable_file_override=1 ;opcache.optimization_level=0xffffffff ;opcache.inherited_hack=1 ;opcache.dups_fix=0 ;opcache.blacklist_filename= ;opcache.max_file_size=0 ;opcache.consistency_checks=0 ;opcache.force_restart_timeout=180 opcache.error_log=/var/log/php5/php5-opcache.error.log opcache.log_verbosity_level=3 ;opcache.preferred_memory_model= ;opcache.protect_memory=0 หมายเหตุ: ฉันจะแก้ไขบล็อกการกำหนดค่าในคำถาม (ขณะที่เปิด) พร้อมคำตอบที่ดีทั้งหมดเพื่อให้เป็นประโยชน์สำหรับทุกคนและหลีกเลี่ยงคำแนะนำซ้ำ ๆ เช่นกันหากมีปัญหาเกี่ยวกับเรื่องนั้นหรือแสดงถึงการละเมิดกฎเว็บไซต์ เพียงแค่แจ้งให้เราทราบ.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.