ম্যাজেন্টো ২.২.২: মঞ্জুরিপ্রাপ্ত মেমরির আকার 27৯২23২৩4545 exha exha বাইট অবসান হয়েছে (১৮৩৩২০ বাইট বরাদ্দ দেওয়ার চেষ্টা করা হয়েছে)


11

আমি ম্যাজেন্টো ২.২.২ এ কাজ করছি এবং আমি যখন পণ্যটি সংরক্ষণ করি এটি এই ত্রুটিটি প্রদর্শন করবে।

মারাত্মক ত্রুটি: /var/www/html/Demo/vendor/magento/framework/Profiler.php লাইন 153 এ 792723456 বাইট মজাদার মেমরির আকার (184320 বাইট বরাদ্দ করার চেষ্টা করা হয়েছে)

Php version : 7.0

Magento : 2.2.2

আমিও পরিবর্তন প্রয়োগ memory_limit = 16Gমধ্যে php.iniফাইল এবং Apache সার্ভার পুনরায় আরম্ভ করুন। এখনও, এই সমস্যা স্থির নয়।

<?php
namespace Abc\Xyz\Observer;

use Magento\Framework\Event\ObserverInterface;
use \Magento\Store\Model\StoreManagerInterface;

class ProductSaveAfter implements ObserverInterface
{
    protected $_objectManager;
    protected $messageManager;
    protected $_productmFactory;
    protected $_productdFactory;
    protected $_productsFactory;
    protected $_eavConfig;
    protected $sStore;
    protected $scopeConfig;
    protected $_helper;
    protected $storeManager;

    public function __construct(
        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
        \Magento\Framework\ObjectManagerInterface $objectManager,
        \Magento\Framework\App\RequestInterface $request,
        \Magento\Eav\Model\Config $eavConfig,
        \Abc\Xyz\Helper\Data $helper,
        StoreManagerInterface $storeManager,
        \Abc\Xyz\Model\productmFactory $productmFactory,
        \Abc\Xyz\Model\ProductdFactory $ProductdFactory,
        \Abc\Xyz\Model\productsFactory $productsFactory,
        \Abc\Xyz\Model\sStoreFactory $sStoreFactory,
        \Magento\Framework\Message\ManagerInterface $messageManager
    ) {
        $this->_objectManager = $objectManager;
        $this->_request = $request;
        $this->_helper = $helper;
        $this->scopeConfig = $scopeConfig;
        $this->_eavConfig = $eavConfig;
        $this->_productmFactory = $productmFactory;
        $this->_productdFactory = $ProductdFactory;
        $this->_productsFactory = $productsFactory;
        $this->sStore = $sStoreFactory;
        $this->storeManager = $storeManager;
        $this->messageManager = $messageManager;
    }
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $product = $observer->getEvent()->getProduct();
        $id = $product->getId();
        $data = $this->_request->getParams();
        $currentWebsite = $this->storeManager->getStore()->getWebsiteId();
        try
        {
            if ($id) {
                $YG14 = $this->_request->getParam('YG14');
                $YG14_size = $this->_request->getParam('YG14_size');

                $mI = $this->_productmFactory->create()->getCollection();
                $mI->addFieldToFilter('product_id', $id);
                /** Delete all records*/
                if ($YG14 != "") {
                    if (!empty($mI)) {
                        foreach ($mI as $mtl) {
                            $mI = $this->_productmFactory->create()->load($mtl->getId());
                            $mI->delete();
                        }
                    }
                }

                if ($YG14 != "") {
                    $mISave = $this->_productmFactory->create();
                    $mISave->setProductId($id);
                    $mISave->setMtlWeight($YG14);
                    $mISave->setMtlType('YG14');
                    $mISave->setSizeIncrementWeightDiff($YG14_size);
                    $mISave->save();
                }
                $dD = $this->_request->getParam('d');
                if ($dD) {
                    $dInfoDelete = $this->_productdFactory->create()->getCollection()->addFieldToFilter('product_id', $id);
                    foreach ($dInfoDelete as $key => $dia) {
                        $dInfo = $this->_productdFactory->create()->load($dia->getId());
                        $dInfo->delete();
                    }
                    foreach ($dD as $d) {
                        $dS = $this->_productdFactory->create();
                        $dS->setProductId($id);
                        if (array_key_exists('d_s', $d)) {
                            $dS->setDS($d['d_s']);
                        }
                        if (array_key_exists('d_w', $d)) {
                            $dS->setDW($d['d_w']);
                        }
                        if (array_key_exists('d_q', $d)) {
                            $dS->setDQ($d['d_q']);
                        }
                        if (array_key_exists('d_s_t', $d)) {
                            $dS->setDST($d['d_s_t']);
                        }
                        $dS->save();
                    }
                } else {
                    $deld = $this->_request->getParam('deld');
                    if ($deld != "") {
                        $delD = explode(",", $deld);
                        foreach ($delD as $delDIds) {
                            $dD = $this->_productdFactory->create()->load($delDIds);
                            $dD->delete();
                        }
                    }
                }
                $sD = $this->_request->getParam('st');
                if ($sD) {
                    foreach ($sD as $sts) {
                        $ssSave = $this->_productsFactory->create();
                        if (isset($sts['st_ids'])) {
                            $ssSave->setId($sts['st_ids']);
                        }
                        $ssSave->setProductId($id);
                        if (array_key_exists('st_c', $sts)) {
                            $ssSave->setStC($sts['st_c']);
                        }
                        if (array_key_exists('st_sett', $sts)) {
                            $ssSave->setStSett($sts['st_sett']);
                        }
                        if (array_key_exists('st_s', $sts)) {
                            $ssSave->setStS($sts['st_s']);
                        }
                        if (array_key_exists('st_w', $sts)) {
                            $ssSave->setStW($sts['st_w']);
                        }
                        if (array_key_exists('st_q', $sts)) {
                            $ssSave->setStQ($sts['st_q']);
                        }
                        $ssSave->save();
                        $sStore = $this->sStore->create();
                        $sStoreExists = $sStore->getCollection()->addFieldToFilter('st_id', $ssSave->getId())->addFieldToFilter('website_id', $currentWebsite);
                        if (!empty($sStoreExists->getData())) {
                            foreach ($sStoreExists as $value) {
                                $sStore->load($value->getId());
                                $sStore->setId($value->getId());
                                $sStore->setProductId($id);
                                $sStore->setPrice($sts['price']);
                                $sStore->save();
                            }
                        } else {
                            $sStore->setWebsiteId($currentWebsite);
                            $sStore->setProductId($id);
                            $sStore->setStId($ssSave->getId());
                            if (array_key_exists('price', $sts)) {
                                $sStore->setPrice($sts['price']);
                            }
                            $sStore->save();
                        }
                    }
                    $delSt = $this->_request->getParam('delSt');
                    if ($delSt != "") {
                        $delS = explode(",", $delSt);
                        foreach ($delS as $delSIds) {
                            $dDelete = $this->_productsFactory->create()->load($delSIds);
                            $dDelete->delete();
                        }
                    }
                } else {
                    $delSt = $this->_request->getParam('delSt');
                    if ($delSt != "") {
                        $delS = explode(",", $delSt);
                        foreach ($delS as $delSIds) {
                            $dDelete = $this->_productsFactory->create()->load($delSIds);
                            $dDelete->delete();
                        }
                    }
                }

                $prices = $this->_helper->defaultPriceCalculate($id, $product, $currentWebsite);
                $product->setWebsiteId($currentWebsite)->setPrice($prices['finalPrice']);
                if ($prices['discountedPrice'] != 0) {
                    $product->setSpecialPrice($prices['discountedPrice']);
                }
                $product->save();

            }
        } catch (\Magento\Framework\Exception\LocalizedException $e) {
            $this->messageManager->addError($e->getMessage());
        } catch (\RuntimeException $e) {
            $this->messageManager->addError($e->getMessage());
        } catch (\Exception $e) {
            $this->messageManager->addException($e, __('Something went wrong while saving the post.'));
        }
    }
}

কীভাবে সমাধান করবেন?

আমাকে সাহায্য করুন.


আপনার কোডটি প্রদর্শন করুন যা আপনি পণ্য সংরক্ষণের জন্য ব্যবহার করছেন।
সুরেশ চিকানী

আপনি মেমরির আকার -1 এ সেট করতে পারেন, সুতরাং এটি প্রয়োজনীয় মেমরি আকার ব্যবহার করবে, সেটিংটি ইনআই_সেট ('মেমরি_লিট', -১);
হিম্মত পালিওয়াল

@ সুরেশচিকানী এটি দেখুন
রোহান হাপানী

আমি কোন স্থানে মেমরির আকার -1 রেখেছি?
রোহান হাপানী

আপনি এটিকে আপনার ম্যাজেন্টোর মূলের সূচক.এফপি ফাইলটিতে রাখতে পারেন।
হিম্মত পালিওয়াল

উত্তর:


33

নিম্নলিখিত আদেশগুলি চেষ্টা করুন:

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
php bin/magento setup:di:compile
php bin/magento cache:flush
php bin/magento cache:clean

//To run command forcefully
php -f bin/magento

//To run command with memory limit 4G
php -d memory_limit=4G bin/magento

//To run command with max memory limit
php -d memory_limit=-1 bin/magento

যদি আপনি এখনও সমস্যার মুখোমুখি হন তবে নীচের সেটিংসগুলি চেষ্টা করুন:

  1. [Magento2-রুট-ফোল্ডারের] /index.php
ini_set('memory_limit',256);

OR

ini_set('memory_limit','-1');

CLI ব্যবহার করে বর্তমান মেমরি_লিট মানটি পরীক্ষা করুন:

1. php -r "echo ini_get('memory_limit').PHP_EOL;"

2. php -i | grep memory

যদি সমস্যাটি এখনও অব্যাহত থাকে তবে নীচের জায়গাগুলিতে মেমরির সীমা (যেমন 2048M অবধি) বাড়িয়ে নিন:

  1. [Magento2-রুট-ফোল্ডারের] /। User.ini
memory_limit = 768M
  1. [Magento2-root-ফোল্ডার] /। Htaccess (2 স্থান)
php_value memory_limit 768M
  1. [Magento2-রুট-ফোল্ডারের] /pub/.user.ini
memory_limit = 768M
  1. [ম্যাজেন্টো 2-রুট-ফোল্ডার] /pub/.htaccess (2 টি স্থান)
php_value memory_limit 768M

এতক্ষণে ইস্যুটি সমাধান করা উচিত, যদি এটি এখনও থাকে তবে আপনার কাস্টম মডিউলটি অক্ষম করুন এবং আবার চেক করুন।


1
সুপার. ধন্যবাদ. .user.ini সম্পাদনা করুন।
জেমস এম

@ জেমসএম - সাহায্য করার জন্য খুশি। সহায়তা চালিয়ে যান :)
প্রতীক ওজা

আপনাকে আমার জন্য খুব দরকারী ধন্যবাদ, আমি এটি যোগ করেছি এবং সমাধান করা সমস্যাটি
প্রদীপ গারচর

ব্যাখ্যা মহান। এটিকে
জয়

@ প্রটিকোজা অনুরূপ ত্রুটির মুখোমুখি হচ্ছেন তাই আপনার পরামর্শগুলি ব্যবহার করে কি আমারও এই আদেশগুলি চালানো উচিত ?? ফ্লাশ: Magento ক্যাশে প্রয়োগের -f, পিএইচপি বিন /: স্ট্যাটিক-সামগ্রী: এটা তা কাজ করছে না পিএইচপি বিন / Magento সেটআপ কিনা পরীক্ষা
Ahmer সাঈদ

7

একটি দ্রুত সমাধান হয়

php -dmemory_limit=6G bin/magento setup:static-content:deploy

এটি চেষ্টা করুন, এটি আমার জন্য কাজ করেছে।


3

792723456 বাইট মানে 756 এমবি। এটি ম্যাগেন্টো প্রস্তাবিত মান এবং তাদের নমুনা কনফিগারেশনে (বিশেষত এনগিনেক্স) ডিফল্ট।

@ প্রতীক ওজা প্রস্তাবিত সমস্ত কিছু ব্যবহার করে দেখুন এবং আমাকে অন্য কোনও জায়গায় নির্দেশ করুন। আপনি কি পিএইচপি-এফপিএম বা একটি অনুরূপ সিজিআই ব্যবহার করছেন? যদি তা হয় তবে দয়া করে সেখানেও মেমরির সীমা পরীক্ষা করুন।

আমার ক্ষেত্রে আমি এনগিনেক্স + পিএইচপি-এফপিএম ব্যবহার করছি এবং আমি প্রকল্পটি ব্যবহার করে মেমরি_লিট সেট করছি

পিএইচপি_ভ্যালু [মেমরি_লিট] = [এন] এমবি

এছাড়াও আপনি যদি কোনও সিজিআই ব্যবহার করছেন তবে এটি ব্যবহার করে দেখুন। প্রথমে আপনার ওয়েবসারভারটি বন্ধ করুন তারপরে আপনাকে সিজিআই পুনরায় চালু করুন এবং তারপরে আবার আপনার ওয়েবসারভার শুরু করুন।

এটি একটি এলোমেলো সমস্যার মুখোমুখি হয়েছিল যা একবার আমার উপরের কাজটি করেছিল I আমি যদি তা না করতাম তবে পিপিপিআইএনআই বা এফএমপিএনএফ-তে নির্ধারিত মানগুলির যত্ন না করেই পিএইচপি-এফএমপি পাস করার মতো কোনও বিষয় এনজিঙ্ক্স সেট করার মতো ছিল না।

সম্পাদনা: আমি দেখতে পাই সমস্যাটি ইউজার.ইএনআই সম্পাদনা করে সমাধান করা হয়েছিল। তার মানে এটি যে প্রকৃতপক্ষে nginx যা অন্য মানটি পেরিয়েছিল এবং আমি বর্ণিত কেসটিও হতে পারে। শুধু এই এক ইশারা। অন্য উত্তরগুলি যে কেউ পড়ছেন তাদের জন্য দয়া করে set_init('memory_limit',-1)কখনও ব্যবহার করবেন না ।

আমি আমার বিকাশকারীকে একটি মাইএসকিএল ক্যোয়ারী অপ্টিমাইজেশন পরীক্ষা করার জন্য এটি ব্যবহার করে দেখেছি এবং স্ক্রিপ্টটি 35gigs মেষে পৌঁছেছে যা 10 মিনিট পরে আমি এটি হত্যা না করা অবধি বাড়িয়ে রেখেছি। আপনি চলমান পয়েন্টে না আসা অবধি অবধি একটি শালীন প্রান্তরে মান নির্ধারণ করুন এবং এটি সেখানে রেখে না যান বা মানগুলি বা ব্যবহারিকেন্দ্রিক / fpm.conf / fascgi পরামিতি ঠিক করুন।


1
php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy -f

php bin/magento cache:flush

php bin/magento cache:clean

এটা অবশ্যই কাজ।


0

ম্যাজেন্টো ২.৩ এর জন্য সুরকারের পরিবর্তে সংরক্ষণাগার থেকে ইনস্টল করার সময় এটি আমাকে ছিটকে যায়। আমার ক্ষেত্রে, আমি যে সেটিংসটি পরিবর্তন করছিলাম তা ভুল জায়গায় ছিল।

আপডেট ছিল:

vi /etc/php/7.2/cli/php.ini

আপডেট করার প্রয়োজন:

vi /etc/php/7.2/apache2/php.ini

এটি উভয় ত্রুটির জন্য যেমন:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

এবং

PHP Fatal error:  Maximum execution time of 30 seconds exceeded in....

পুনর্লিখন সক্ষম করার বিষয়টি নিশ্চিত করুন: a2enmod rewriteযদি পৃষ্ঠাগুলিতে সমস্যা থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.