গতি: এপিসি এবং মেমক্যাচ উভয়ের সাথে ম্যাজেন্টো


17

আমরা অনেক ফোরাম অধ্যয়ন করেছি এবং নীচের উত্তর জানি না। আমরা উভয় আছে APCএবং Memcacheআমাদের সার্ভারে ইনস্টল করা নেই। সঠিক এবং সেরা কনফিগারেশন কী তা আমরা নিশ্চিত নই।

আমার প্রশ্ন

একই সাথে মেমক্যাস + এপিসি উভয় ব্যবহার করে ম্যাজেন্টো চালানোর জন্য সেরা সেটিংসগুলি কী /? (বা এটি মোটেই স্মার্ট নয়)

পটভূমি গবেষণা

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

এবং এই নিবন্ধটি মেমকেচে বা এপিসি সম্পর্কে - এবং আমাদের উভয়ই রয়েছে

এবং এখানে এটি উল্লেখ করে যে মেমক্যাচ কেবল তখনই কাজ করে যখন আপনার ধীরে ধীরে ব্যাকএন্ডও সংজ্ঞায়িত হবে

এবং আমি মনে করি এই নিবন্ধটি একই বলছে

লোকাল.এক্সএমএল এর জন্য এটি আমার আইএসপি এর সমাধান

<cache>
  <backend>apc</backend>
  <prefix>sitenamehere__</prefix>
</cache>
<cache>
  <backend>memcached</backend>
  <memcached>
    <servers>
      <server>
        <host><![CDATA[127.0.0.1]]></host>
        <port><![CDATA[11211]]></port>
        <persistent><![CDATA[1]]></persistent>
      </server>
    </servers>
    <compression><![CDATA[0]]></compression>
    <cache_dir><![CDATA[]]></cache_dir>
    <hashed_directory_level><![CDATA[]]></hashed_directory_level>
    <hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
    <file_name_prefix><![CDATA[]]></file_name_prefix>
  </memcached>
</cache>

পরিস্থিতি

শেয়ারড হোস্টিং ব্রিম এফপিসি ইনস্টল করা হয়েছে: http://ecommerce.brimllc.com/full-page-cache-magento.html (এই এফপিসিতে আরও জটিল করার জন্য স্কেলযোগ্য ফাইল ক্যাশে রয়েছে)


@ সোনাসি, মেমক্যাচড-ট্যাগের পরিবর্তে কেন নয়? কোড.google.com/p/memcached-tag

উত্তর:


26

কীভাবে এটি ব্যবহার করবেন তা বোঝার জন্য আপনাকে এই দুটি পণ্যের মধ্যে স্পষ্ট পার্থক্য বুঝতে হবে।

  • এপিসি উভয়ই একটি অপকোড ক্যাশে এবং দ্রুত ব্যাকএন্ড
  • মেমকেচে মাত্র একটি দ্রুত ব্যাকএন্ড

APCode ক্যাশে হিসাবে এপিসি ব্যবহার করা

কেবল আপনার সার্ভারে মডিউলটি ইনস্টল করুন

pecl install apc

এবং এটি আপনার সক্ষম করুন php.ini

echo "extension=apc.so" >> /usr/lib/local/php.ini       (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini   (Debian)

তারপরে আপনি রানটাইম কনফিগারেশনটি যথাযথ করতে সক্ষম এবং সূক্ষ্ম-সুর করুন ।

apc.enabled
apc.shm_sements
apc.shm_size
apc.optimization
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...

তারপরে পিএইচপি / অ্যাপাচি পুনরায় চালু করুন

/etc/init.d/httpd restart                               (RedHat/Centos)
/etc/init.d/apache2 restart                             (Debian)

এরপরে আর কিছু করার নেই। নিশ্চিত করুন এপিসি দ্রুত দিয়ে সক্ষম হয়েছেphpinfo() - তবে অন্যথায়, এপিসির ওপকোড ক্যাশে অংশটি সক্রিয় রয়েছে।

Magento এর পক্ষ থেকে কিছুই কনফিগার করা প্রয়োজন।

এপিসিকে দ্রুত ব্যাকএন্ড হিসাবে ব্যবহার করা হচ্ছে

আপনার নিজের সাথে নিম্নলিখিতটি যুক্ত করতে হবে ./app/etc/local.xml

<global>
  ...
  <cache>
    <backend>apc</backend>
      <prefix>mystore_</prefix>
  </cache>
  ...
</global>

তারপরে আপনার বিদ্যমান স্টোর ক্যাশে ফ্লাশ করুন। এটি কাজ করছে কিনা তা যাচাই করতে, ফ্রন্ট-এন্ডে একটি পৃষ্ঠা লোড করুন./var/cache ডিরেক্টরিটি ফাঁকা রাখা উচিত।

দ্রুত ব্যাকএন্ড হিসাবে মেমকেচে ব্যবহার করা

আপনাকে একটি পিএইচপি এক্সটেনশন হিসাবে মেমক্যাচ ইনস্টল করতে হবে এবং আপনার সার্ভারে সম্পর্কিত মেমক্যাচ ডেমন (মেমক্যাচড) ইনস্টল করতে হবে।

pecl install memcache

এবং এটি আপনার php.ini এ সক্ষম করুন

echo "extension=memcache.so" >> /usr/lib/local/php.ini            (RedHat/Centos)
echo "extension=memcache.so" >> /etc/php5/conf.d/20memcache.ini   (Debian)

/etc/init.d/httpd restart                               (RedHat/Centos)
/etc/init.d/apache2 restart                             (Debian)

তারপরে সার্ভারে মেমক্যাচ ইনস্টল করুন। আরএইচ / সেন্টোসের জন্য, আপনার প্রকাশের সংস্করণ এবং সিপিইউ আর্কিটেকচারের উপযোগী করার জন্য URL টি সামঞ্জস্য করুন।

rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum --enablerepo=rpmforge install memcached

apt-get install memcached                               (Debian)

তারপরে ম্যাগকেচকে দ্রুত ব্যাকএন্ড হিসাবে ব্যবহার করতে ম্যাগেন্টোকে সংশোধন করুন, সকেটের পাথটিকে টিসিপি / আইপি সংযোগে স্যুট করুন suit

<cache>
  <slow_backend>database</slow_backend>

  <fast_backend>memcached</fast_backend>
  <fast_backend_options>
    <servers>
      <server>
        <host>unix:///tmp/memcached.sock</host>
        <port>0</port>
        <persistent>0</persistent>
      </server>
    </servers>
  </fast_backend_options>

  <backend>memcached</backend>
  <memcached>
  <servers>
    <server>
      <host>unix:///tmp/memcached.sock</host>
      <port>0</port>
      <persistent>0</persistent>
    </server>
  </servers>
</cache>

মেমকেচে এবং ট্যাগিংয়ের সতর্কতা - এটি কী সংরক্ষণ করছে

মেমক্যাচ কেবলমাত্র একক স্তরের কী-মান সম্পর্কের সমর্থন করে, তাই এটি ম্যাজেন্টো ক্যাশে ট্যাগগুলি সংরক্ষণ করতে পারে না (যা স্বাধীনভাবে ক্যাশে ডেটা ফ্লাশ করতে ব্যবহৃত হয়)। ফলস্বরূপ, আপনাকে হয় slow_backendক্যাশে কন্টেন্ট ট্যাগ সম্পর্ক বজায় রাখতে একটি নির্দিষ্ট করতে হবে , বা একে একে সংজ্ঞায়িত করতে হবে না।

আপনি যদি সংজ্ঞা দেন slow_backend , আপনি ক্যাশে ট্যাগগুলি এত বড় হয়ে যাওয়ার ঝুঁকি চালান যে কর্মক্ষমতা তুচ্ছ হয়ে যায়; যদি প্রতিটি সার্ভার তাদের নিজস্ব ক্যাশে ট্যাগ বজায় রাখে তবে একাধিক সার্ভার জুড়ে আপনি স্কেল করতে পারবেন না এমন অন্তর্নিহিত সমস্যাও রয়েছে।

সুতরাং মেমকেচে ব্যবহার করার সময়, আরও ভাল পদ্ধতির ( ক্যাভ্যাট সহ আপনি স্বতন্ত্রভাবে ক্যাশে ফ্লাশ করতে পারবেন না), এটি ব্যবহার করে বিরক্ত করবেন না slow_backend

কোন ক্ষেত্রে, আমরা <slow_backend>database</slow_backend>এটিকে সরিয়ে এবং প্রতিস্থাপনের পরামর্শ দিচ্ছি :

  <slow_backend>Memcached</slow_backend>
  <slow_backend_options>
    <servers>
      <server>
        <host>unix:///tmp/memcached.sock</host>
        <port>0</port>
        <persistent>0</persistent>
      </server>
    </servers>
  </slow_backend_options>

এটি দ্বিতীয় স্তরের ক্যাশে ভাঙা / অক্ষম করবে (এবং ট্যাগ স্টোরেজ প্রতিরোধ করবে), কিন্তু তবুও মেমক্যাচের পারফরম্যান্সের অনুমতি দেয়।

যা ব্যবহার করতে হবে

যদি এটির একক সার্ভার স্থাপন করা হয় - তবে প্রতিটি কিছুর জন্য কেবল এপিসি ব্যবহার করার কোনও ক্ষতি নেই।

যদি এটি একটি বিতরণ সেট আপ হয় - তবে আপনাকে দ্রুত ব্যাকএন্ড হিসাবে মেমক্যাচ ব্যবহার করতে হবে (যাতে সমস্ত মেশিনই সাধারণ দোকানে অ্যাক্সেস করতে পারে)।

আরও গুরুত্বপূর্ণ বিষয়টি হ'ল যদি আপনার হোস্টিং সরবরাহকারী আপনাকে সঠিকভাবে সেট আপ করতে না বলতে পারে তবে আপনি অবশ্যই ভুল হোস্টের সাথে রয়েছেন।


বৈশিষ্ট্য: sonassi.com , php.net , repoforge.org


আমি যখন এই কৌশলটি ব্যবহার করে স্লো_ব্যাকেন্ড_ক্যাশটি অক্ষম করার চেষ্টা করি তখন আমি ম্যাজেজে slow_backend must implement the Zend_Cache_Backend_ExtendedInterface interface1.7.0.2 এ চলে যাই
অ্যারন পোলক

6

আমি পূর্ববর্তী উত্তরের সাথে বেশ একমত, তবে এটি সম্পূর্ণ করার জন্য এখানে একটি সংক্ষিপ্ত নির্ভুলতা রয়েছে: হ্যাঁ, এপিসি ক্যাশে স্টোরেজ ইঞ্জিন এবং পিএইচপি বাইট কোড অপটিমাইজার হিসাবে ব্যবহার করা যেতে পারে। তবে দুটি বিষয় পরিষ্কার করা দরকার:

  • দ্রুত ব্যাকএন্ড হিসাবে, APC দ্বারা এটি কীভাবে ডেটা সংরক্ষণ করতে হবে তা বোঝার জন্য কনফিগারেশন নির্দেশগুলি apc.user_% নির্দেশকের মাধ্যমে পরিচালিত হয়। অন্যগুলি কেবল বাইট কোড ক্যাশে নিয়ে উদ্বেগ প্রকাশ করে (প্রাক্তন apc.ttl: অপকড ক্যাশের মেয়াদোত্তীর্ণ সময়কাল, apc.user_ttl: আপনার ম্যাজেন্টো দ্বারা ক্যাশে থাকা ডেটাটির মেয়াদোত্তীকরণের সময়কাল)।

  • এবং দ্রুত ব্যাকএন্ড হিসাবে, এপিসি মেমক্যাচের চেয়ে ঠিক একই আচরণ করে: এটি ক্যাশে ট্যাগগুলি পরিচালনা করে না এবং ম্যাগেন্তোর জন্য এটির জন্য একটি কনফিগার করা ধীর ব্যাকএন্ড (বা ডিফল্টরূপে স্লো ব্যাকএন্ড ফাইলটি ব্যবহার করা) দরকার।

আমার অভিজ্ঞতা থেকে, বিশাল ট্র্যাফিকের ওয়েবসাইটগুলিতে, আপনি যদি কেবলমাত্র বাইট কোড অপটিমাইজার হিসাবে এপিসি ব্যবহার করেন তবে আপনাকে apc.shm_size কনফিগারেশন মানটিতে 96 থেকে 256Mo এর মধ্যে প্রয়োজন। এছাড়াও apc.num_files_hint বাড়াতে 1000 থেকে 15000 করুন: ডিফল্টরূপে এপিসি ক্যাশে বাইট কোড ক্যাশে কেবল 1000 ফাইল এবং ম্যাজেন্টোতে প্রায় 20,000 ডলার পিএইচপি এবং পিএইচএমএল ফাইল ডিফল্ট ( find . -type f -name "*.php" -o -name "*.phtml" | wc -l) থাকে। সুতরাং আপনার উত্স কোড সহ এই মানটি কাস্টমাইজ করুন।

আপনি যদি এপিসি ব্যবহার করেন বা দ্রুত ব্যাকএন্ড হিসাবে ম্যাকচেড ব্যবহার করেন তবে প্রয়োজনীয় মেমরির জন্য আপনাকে কিছু টিপস সরবরাহ করা কঠিন: এটি আপনার উদাহরণে প্রয়োগ করা ক্যাশে নীতিতে সত্যই নির্ভর করে।

আপাতত, আপনার ক্যাশে কনফিগারেশন এর মতো কাজ করে:

  • প্রতিটি বিষয়বস্তু মেমচেড এবং ফাইল উভয়ই সংরক্ষণ করা হয়
  • দ্রুত ব্যাকএন্ড সর্বদা ধীর ব্যাকএন্ডের পূর্বে অনুরোধ করা হয়
  • যদি দ্রুত ব্যাকএন্ডে কিছু না পাওয়া যায় তবে ম্যাজেন্টো ধীর ব্যাকএন্ডে সন্ধান করে

এই দুই স্তরের ব্যবস্থাপনা কেন? মেমক্যাচড এবং অন্যান্য দ্রুত ব্যাকেন্ডগুলি মেমরি স্টোরেজ ora সুতরাং এর অর্থ হ'ল ডেটা দূষিত হতে পারে বা অদৃশ্য হয়ে যেতে পারে।

আপনি কীভাবে এই কনফিগারেশন কর্মক্ষমতা বাড়াতে পারেন?

দ্বিতীয় রচনাটি অক্ষম করুন সম্ভবত সবচেয়ে কার্যকর বিকল্পগুলির মধ্যে একটি। আপনার উল্লিখিত চতুর্থ প্রবন্ধে এটি ব্যাখ্যা করা হয়েছে। তবে আপনারা ধীরে ধীরে_ব্যাকেন্ড_স্টোর_ডেটা সোর্স কোড পরিবর্তন ছাড়াই ব্যবহার করতে পারবেন না। আপনার প্রসঙ্গে, আমি নিম্নলিখিত কারণে এই কাস্টমাইজেশন করার পরামর্শ দিচ্ছি না: ক্যাশে থাকা আপনার ডেটা কখনই নিয়ন্ত্রণ করা হবে না। আপনি মেমরিতে ডেটা সঞ্চয় করবেন, পারফরম্যান্স উপার্জন করবেন, তবে সম্ভবত আপনার ভিজারদের কাছে একটি অবৈধ সামগ্রী প্রেরণ করবেন। সুতরাং আপনাকে এমন একটি সমাধান খুঁজে বার করতে হবে যা আপনাকে মেমোরি অ্যাক্সেস (আরও ভাল পারফরম্যান্সের জন্য), লেখার নিয়ন্ত্রণ এবং স্লো_ব্যাকেন্ড_স্টোর_ডাটা ক্যাচিং অক্ষম করার সুনিশ্চিত করে। আপনি এই প্রসঙ্গে পৌঁছাতে পারেন:

  • রেডিসের মাধ্যমে মেমক্যাচ করা সার্ভারটি প্রতিস্থাপন করুন (একটি ফাইল সিস্টেমের দ্বারা এটি পুনরায় পড়া এবং লিখতে নিয়ন্ত্রণ করতে পারে), এবংবাইট কোড অপ্টিমাইজার হিসাবে এপিসি ব্যবহার চালিয়ে যান

  • * নিশ্চিত করুন যে আপনি স্লো_ব্যাকেন্ড_স্টোর_ডেটা বিকল্পটি ব্যবহার করতে সক্ষম হচ্ছেন * হয় আপনার উত্স কোডটি কাস্টমাইজ করে অথবা কোনও ডাটাবেস স্লো ব্যাকএন্ডে স্যুইচ করে (হ্যাঁ এটি আপনার ডাটাবেস সার্ভারের বোঝা বাড়িয়ে তোলে , তবে আপনার ক্যাশে নীতিটি যদি ভালভাবে সংজ্ঞায়িত করা হয় তবে এটি হওয়া উচিত নয়) একটি সমস্যা)

  • * স্লো_ব্যাকেন্ড_স্টোর_ডেটা বিকল্পটি নিষ্ক্রিয় করুন * : এই কনফিগারেশনে এটি আর প্রয়োজন হয় না, আপনি রিডিস দ্বারা কন্ট্রোল পড়েছেন এবং লিখেছেন।


2

এটির অতিরিক্ত নোট হিসাবে, আমরা খুঁজে পেয়েছি যে এপিসিটি ম্যাজেন্টো (অপকোড ক্যাচিংয়ের জন্য - আমরা রেডিস প্রচলিত ম্যাজেন্টো পৃষ্ঠা এবং ব্লক ক্যাচিংয়ের জন্য ব্যবহার করি) এর পরে স্থির সেটিংটি 0 উত্পাদন (তবে 1 ইন 1) নিশ্চিত করা গুরুত্বপূর্ণ উন্নয়ন):

apc.stat = 0

Apc.stat সেটিংটি প্রতিটি অনুরোধে কোনও স্ক্রিপ্ট পরিবর্তন করা হয়েছে কিনা তা নির্ধারণের জন্য এটি নির্ধারণ করতে ব্যবহৃত হয় ( http://www.php.net/manual/en/apc.configration.php#ini.apc.stat ) এবং সুতরাং উত্পাদন পরিবেশে এটিকে 0 এ সেট করা প্রতিটি অনুরোধের সাথে এপিসি এই চেকটি না করায় পারফরম্যান্স বেনিফিট নিয়ে আসবে।

উল্লেখ করার মতো যে একবার apc.stat 0 এ সেট করা থাকলে ফাইল ফাইল পরিবর্তন (যেমন- পোস্ট-ডিপ্লোয়মেন্ট) বাছাই করতে আপনাকে সম্ভবত আপনার ওয়েব সার্ভার প্রক্রিয়াটি পুনরায় চালু করতে হবে তবে এটি যাইহোক আপনার পোস্ট-স্থাপনার কৌশলটির অংশ হওয়া উচিত।


1

ব্যাকএন্ডের উল্লেখযোগ্যভাবে গতি বাড়ানোর জন্য আমরা যে সেরা কাজটি করেছি তা হ'ল রেডিসকে ক্যাশে হ্যান্ডলার হিসাবে ইনস্টল করা । এটি এখন ম্যাগেন্টো ১.৮ এবং তার থেকে উপরে পর্যন্ত সমর্থিত।

কিছুই তুলনা করে না ... এখন ক্লিক ক্লিকের ক্লিক ক্লিক ক্লিক করুন

http://www.magentocommerce.com/knowledge-base/entry/redis-magento-ce-ee

এছাড়াও আপনি রেডিস মেমরি সার্ভারে সেশন যুক্ত করতে রেডিস সেশন এক্সটেনশন যুক্ত করার বিষয়টি বিবেচনা করতে পারেন ...

শুভকামনা!


0

এই লোকাল.এক্সএমএল ফাইল থেকে, ম্যাগেন্টো শেষ এন্ট্রিটি গ্রহণ করবে এবং মেমক্যাচ ব্যবহার করবে। আমি মনে করি কীভাবে এপিসি এবং মেমক্যাচে ম্যাজেন্টোর সাথে কাজ করতে পারে তার মধ্যে একটি বিভ্রান্তি রয়েছে।

প্রথমত, এপিসির 2 টি ব্যবহার রয়েছে:

  • অপকোড ক্যাচিং - আপনার পিএইচপি ফাইলগুলি অপকোডে সংকলন করুন, স্ক্রিপ্ট সম্পাদনাকে প্রায় 25% দ্রুততর করে তোলে
  • কী / মান স্টোরেজ - ম্যাগাঙ্কো ক্যাশে সিস্টেম হিসাবে ব্যবহার করতে পারে।

অন্যদিকে মেমক্যাচ কেবল একটি মূল / মানের দোকান। মেমক্যাশের বড় সুবিধাটি হ'ল এটি ক্লায়েন্ট-সার্ভার মোডে কাজ করতে পারে, তাই একাধিক ফ্রন্টএন্ড সার্ভার একই ক্যাশে ব্যবহার করতে পারে যা আপনার যদি একই ওয়েবসাইট পরিবেশন করে এমন একাধিক সার্ভার থাকে তবে তা অবশ্যই আবশ্যক।

সর্বাধিক সাধারণ সেটআপ হ'ল অপকোড ক্যাচিং পেতে এপিসি ইনস্টল করা (যাতে আপনি ~ 25% দ্রুত স্ক্রিপ্ট এক্সিকিউশন পান) এবং ম্যাসচেচকে ক্যাশে সার্ভার হিসাবে ব্যবহার করেন। আমি এপিসি কে ক্যাশে সিস্টেম হিসাবেও ব্যবহার করেছি এবং যদিও তত্ত্ব অনুসারে এটি মেমক্যাশের চেয়ে কিছুটা দ্রুত হওয়া উচিত, আপনি পার্থক্যটি বলতে পারবেন না।


সুতরাং আমি যদি এটি পড়ি: সর্বাধিক সাধারণ সেটআপটি হল অপকোড ক্যাচিং পেতে এপিসি ইনস্টল করা (যাতে আপনি ~ 25% দ্রুত স্ক্রিপ্ট এক্সিকিউশন পান) এবং ম্যাসচেচকে ক্যাশে সার্ভার হিসাবে ব্যবহার করেন। তাহলে আমরা কীভাবে দুজনকে একসাথে ব্যবহার করতে পারি? এটি কি এর মতো: coeusblue.com/blog/48-magento/65-magento-caching
snh_nl

উভয়কে একসাথে ব্যবহার করার জন্য, আপনাকে এপিসির সাথে কিছু করার দরকার নেই।
বেন লেসানী - সোনাসি

তাহলে কোড থেকে সব কিছু হবে? <ক্যাশে> <ব্যাকেন্ডে> ম্যাকচেড </ ব্যাকএন্ড> এবং প্রথম অংশটি ছেড়ে দিন
snh_nl

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