ম্যাজেন্টো এন্টারপ্রাইজ ফুল পৃষ্ঠা ক্যাশে প্রাক-ওয়ার্মিং


19

ম্যাজেন্টো এন্টারপ্রাইজে পুরো পৃষ্ঠা ক্যাশেটির কার্যকারিতা সুবিধাগুলি মোটামুটি সুপরিচিত। যে বিষয়টি এতটা সুপরিচিত না হতে পারে তা হ'ল এটির পুরো উপকারের জন্য এটি সম্পূর্ণরূপে জনবহুল এবং উত্তপ্ত হতে হবে, বিশেষত বৃহত্তর পণ্য সেটগুলিতে যেখানে আপনার কেবল কয়েকটি পৃষ্ঠাগুলি জৈব ট্রাফিকের ব্যবহারের উদ্দেশ্যে তৈরি করে না প্রাইম এটি যথেষ্ট দ্রুত।

ম্যাজেন্টোতে সাইটটি ক্রল করার জন্য এবং সকালে এফপিসিটি গরম করার জন্য একটি অন্তর্নির্মিত ক্রোনজবুক অন্তর্ভুক্ত রয়েছে।

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

  • উত্পন্ন সাইটম্যাপ ফাইলে প্রতিটি পৃষ্ঠা ক্রল করার জন্য শেল স্ক্রিপ্ট একসাথে রাখুন।
  • ম্যাজেন্টো বুটস্ট্র্যাপ করতে এবং ক্রলার প্রক্রিয়া সরাসরি চালিত করতে একটি পৃথক ক্রন্টব এন্ট্রি এবং একটি সংক্ষিপ্ত পিএইচপি স্ক্রিপ্ট ব্যবহার করুন।

এ সম্পর্কে কোনও চিন্তাভাবনা এবং / অথবা অভিজ্ঞতা স্বাগত!


1
প্রকৃতপক্ষে আপনি একটি পৃথক ফাইল থেকে এন্টারপ্রাইজ ক্রলারকে কল করতে পারেন এবং এটি ট্রিগার করতে আপনার সার্ভার ক্রোনট্যাব ব্যবহার করতে পারেন যাতে এটি আর না হয়।
টুন ভ্যান ডুরেন

উত্তর:


16

আপনি ম্যাগস্পিটেড টেস্টের মতো ফাইলের সাথে মিশ্রণে অবরোধ ব্যবহার করতে পারেন ।sitemap.xml

#categories
curl http://yourmagentostore.com/sitemap.xml | sed 's/\<url\>/\<url\>\n/g' | grep 0.5 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' > urls.txt
#products
curl http://yourmagentostore.com/sitemap.xml | sed 's/\<url\>/\<url\>\n/g' | grep 1.0 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' >> urls.txt

তারপরে দৌড়াও

siege -i -c 1 -t 7200s -f urls.txt

এখান থেকে প্রাপ্ত সামগ্রী ।


আপনি ব্যবহারের অনুরোধগুলির মধ্যে –delay
বিলম্বও

দ্রষ্টব্য: এই সেড কমান্ডগুলি ডারউইনের উপর কাজ করে না, তবে সেন্টস-এ কাজ করে।
ডেভিডালগার

1
এটি প্রতিটি url "উষ্ণ" হওয়ার নিশ্চয়তা দেয় না। অবরোধটি এলোমেলোভাবে ফাইল থেকে হিট করার জন্য ইউআরএলগুলি নির্বাচন করবে, তবে অগত্যা প্রতিটি ইউআরএল পরিদর্শন করবে না।
জো কনস্ট্যান্ট

22

আমরা ঠিক করি না। কখনো। আমরা এটি বারবার বলব তবে

ক্যাচিং! = পারফরম্যান্স

আপনার সাইট দরকার (আসলে জন্য অথবা বার্নিশ) FPC যোগে ছাড়া ফাস্ট যাবে। সবসময় এমন সময় আসবে যখন বিষয়বস্তুটি মূল্যবান নয় (উপরে আপনার দৃশ্যধারণ)।

একটি লোড স্টোরে, এফপিসির সাথে পৃষ্ঠা লোডের সময়গুলি নন-এফপিসি থেকে বেশি চিত্তাকর্ষক হওয়া উচিত নয়; ম্যাজেন্টো < 400msস্ট্যান্ডার্ড ক্যাশে (বিভাগ / পণ্য / অনুসন্ধান পৃষ্ঠাগুলিতে) পৃষ্ঠা লোড বারের জন্য বেশ সুখীভাবে সক্ষম । এফপিসি এটিকে কমিয়ে আনবে < 80ms- তবে ক্যাভেটস সহ আসে।

  1. অবৈধকরণ বা টিটিএল সমাপ্তির আগ পর্যন্ত স্টক / দামের তথ্য পুরানো
  2. নতুন আইটেম / আরও প্রাসঙ্গিক অনুসন্ধান অবৈধকরণ বা টিটিএল মেয়াদ শেষ না হওয়া অবধি শেষ

    প্রভৃতি

কেন এফপিসির উপর নির্ভরতা (বা বার্নিশ) একটি খারাপ ধারণা

যদি আপনি ক্রমাগত নিশ্চিত হন যে ক্যাশেগুলি ম্যানুয়ালি প্রাইমড হয়ে থাকে, তবে এর কয়েকটি কারণ সম্ভবত রয়েছে

  1. ক্যাশেগুলি প্রাইম রাখার জন্য আপনার পর্যাপ্ত প্রাকৃতিক ঝর্ণা নেই (দেখুন 'এফপিসি কোথায় দরকারী')
  2. আপনার সাইটগুলি এগুলি ছাড়া খুব ধীর

আপনি সবকিছু ক্যাশে করতে পারবেন না

যদি আপনি কেবল 5 টি বিভাগ, স্ট্র্যাটেড নেস্টেড 2 টি স্তর গভীর, 5 ফিল্টারযোগ্য বৈশিষ্ট্য, 5 টি বৈশিষ্ট্য বিকল্প এবং প্রতিটি 1000 পণ্য; এটি সম্ভব সংমিশ্রণ অনেক

একের পর এক পাঁচ বার বাছাই করার জন্য 25 টি বিকল্প বেছে নিন - আমি কোনও পরিসংখ্যানবিদ নই , তবে আমি অবগত আছি যে ... (বিশদ বিকল্পগুলির সংখ্যা সম্পূর্ণ হ্রাস পাবে না ধরে নি)

25 possible URLs on the first selection
20 possible URLs on the second selection
15 possible URLs on the third selection
10 possible URLs on the fourth selection
5  possible URLs on the fifth selection

5^5 = 3,125 possible combinations (for top level categories)
5^4 = 625 possible combinations (for 2nd level categories)

ঠিক আছে, উপরের কোনও সম্ভাব্য পরিস্থিতি নয়, যেমনটি আমি 3 টি ক্লিকের মধ্যেই কল্পনা করব - উপলব্ধ পণ্যগুলির সংখ্যা গ্রাহকের তাদের পণ্য সন্ধানের জন্য যথেষ্ট পরিমাণে হ্রাস পেয়েছে। এমনকি যদি এটি ছিল ...

25 possible URLs on the first selection
10 possible URLs on the second selection
3 possible URLs on the third selection

5^3 = 125 possible URL combinations 

তারপরে 5 টি বিভাগ অনুসারে এটি 625 টি ইউআরএল। এই পর্যায়ে, আমরা একটি ছোট ক্যাটালগ সম্পর্কে কথা বলছি, এবং সমস্ত পণ্যের URL গুলি সম্পূর্ণ উপেক্ষা করছি।

আমরা এর সাথে ফ্যাক্টরিও করছি না যে আপনি যদি বিভাগগুলি নেস্ট is_anchorকরে থাকেন তবে তা তাত্পর্যপূর্ণভাবে বৃদ্ধি পাবে।

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

যদি আপনার পৃষ্ঠাগুলির পৃষ্ঠার লোড সময় 0.4 সে হয় এবং আপনার 8 টি সিপিইউ থাকে - তবে ...

625 * 0.4 = 250 / 8 = 31 seconds

0.5 মিনিট, খারাপ নয় - তবে কল্পনা করুন যে আপনার 2 স পৃষ্ঠাগুলির লোড সময় হয়েছে

625 * 2 = 1250 / 8 = 156 seconds

তবে আপনি যদি সর্বাধিক সম্ভাব্য পরিস্থিতি গ্রহণ করেন

3,750 * 2 = 7,500 / 8 = 937 seconds ~ 15 minutes

সুতরাং এটি আপনার প্রোডাকশন সার্ভার, ১৫ মিনিটের জন্য 100% সিপিইউ লোডের নিচে। আপনি যে টিটিএল চান তা আনুপাতিকভাবে ক্রল গতি হ্রাস করবে।

সুতরাং আপনি যদি সামগ্রীটি 3600 টি টিটিএল রাখতে চান তবে ক্রলটি 4 গুণ ধীর হতে পারে - যেমন। কেবল 25% সিপিইউ ক্রলকে উত্সর্গীকৃত। কেবলমাত্র বিভাগের বিষয়বস্তুকে মূল লক্ষ্য হিসাবে রাখার জন্য এটি প্রচুর সংস্থান stage আমরা এই পর্যায়ে পণ্য, অনুসন্ধানের পদ বা অতিরিক্ত স্টোর ভিউগুলিতে ফ্যাক্টরিও করি নি have

প্রকৃতপক্ষে, কেবল catalog_url_rewritesসারণীতে সংমিশ্রণের নিখুঁত আকারের দিকে তাকানো (যা স্তরযুক্ত নেভিগেশন থেকে প্যারামিটারগুলিতে ফ্যাক্টরিও নয়) আপনার কতটি ইউআরএল ক্রল করার প্রয়োজন শেষ করতে পারে সে সম্পর্কে ধারণা দেবে।

প্রতিটি স্টোর অবশ্যই আলাদা হবে, তবে যা আমি বাড়িতে আঘাত হানার চেষ্টা করছি তা হ'ল সাইটটি প্রাইম এফপিসিতে ক্রল করা ব্যবহারিক নয়। আপনার স্টোরটি দ্রুত শুরু হওয়ার তা নিশ্চিত করুন

যেখানে এফপিসি দরকারী

যেখানে এফপিসির সুবিধাগুলি প্রচুর পরিমাণে বোঝা স্টোরটিতে আসে - যেখানে আপনারা সত্যিকারের উচ্চ স্তরের ট্র্যাফিক এবং ক্যাশে প্রাকৃতিকভাবে এবং ক্রমাগত একা নিখুঁতভাবে পড়ে যান।

এফপিসি এর পরে সাধারণত অনুরোধ করা সামগ্রীতে অবকাঠামোগত ওভারহেডগুলি হ্রাস করে কার্যকর হয় - ম্যাজেন্টো ব্যাকএন্ডে সেই পুনরাবৃত্তি কলগুলি কেটে দেয়।

সুতরাং আমরা খুঁজে পেয়েছি যে পৃষ্ঠার লোড সময় হ্রাস করার জন্য নয় - সংস্থান ব্যবহার কমাতে - যখন আপনি খুব উচ্চ ট্র্যাফিক স্তর পেয়ে থাকেন তখন এফপিসি মোতায়েন করতে দুর্দান্ত।

কে পরোয়া করে, আমি এখনও ক্রল করতে চাই

ঠিক আছে, তাহলে আপনি দুটি বিকল্প পেয়েছি

  1. একটি টেমপ্লেট থেকে ক্রল করুন (উদাহরণস্বরূপ সাইটম্যাপ)
  2. লিঙ্ক পৃষ্ঠাটি পৃষ্ঠাতে বের করুন এবং প্রতিটি ক্রল করুন

এবং এই উভয়টি করার জন্য অনেকগুলি ইউটিলিটি রয়েছে, এগুলি আমি জানি

  1. পুরোনো যাদুকর-perftest
  2. HTTrack
  3. Nutch
  4. Sphider
  5. Crawler4j

Mage- পারফেক্ট ব্যবহার করে

আপনি খুব সহজেই ম্যাজ-পারফেষ্টের সাথে আপনার স্টোর ক্রল করতে পারেন, প্রথমে এটি ডাউনলোড করুন

wget http://sys.sonassi.com/mage-perftest          (64bit) OR
wget http://sys.sonassi.com/mage-perftest-i386     (32bit)
chmod +x http://sys.sonassi.com/mage-perftest*

তারপরে ম্যাজেন্টো সাইটম্যাপ ব্যবহার করে ক্রল প্রক্রিয়াটি সংজ্ঞায়িত করুন (ইউআরএলগুলিকে <loc></loc>ট্যাগগুলিতে মোড়ানো থাকলে আপনি কোনও URL এর সাইটম্যাপ তৈরি করে এটি কাস্টমাইজ করতে পারেন )। নিম্নলিখিত কমান্ডটি সাইটম্যাপ ফাইল থেকে সমস্ত ইউআরএল পড়বে, তারপরে 1440 মিনিট (1 দিন) ধরে URL গুলি ক্রল করবে (কেবলমাত্র পিএইচপি করবে)। যদি সার্ভারটি 20% সিপিইউ বা 2 এর একটি লোড গড় ছাড়িয়ে যায় - ক্রলটি সাময়িকভাবে বিরতি দেবে।

./mage-perftest -u www.example.com -s www.example.com/sitemap.xml -r auto -b -d 1440 -z -a 20 -l 2  

আপনার যদি 1000 টি ইউআরএল থাকে তবে 1 দিন ধরে ক্রল হয়ে গেছে, এটি প্রায় হবে। 0.03 আরপিএসের প্রতি 86 সেকেন্ড (গুলি) এর জন্য 1 টি অনুরোধ


আপনি খোলার লাইনটি খুব সত্য… পৃষ্ঠা ক্যাচিং কার্য সম্পাদন করার উপায় নয়। আমি এটা জানি. আপনি ক্লায়েন্টদের একই জিনিসটি কতবার বলেছি তা আপনি জানেন না। আমি সত্যই বলব, আমি এমন কোনও সাইট সেটআপ করিনি যেখানে আমাদের আগে আগে এফপিসি চালানোর ক্রোলার ছিল না, এবং কেবল এটি একবার ব্যবহার করা দেখেছি যেখানে কোনও ক্লায়েন্ট এটি অ্যাডমিনে সক্ষম করেছে… তারা ফাইল-ভিত্তিক ক্যাশে ট্যাগ করার কারণে জিনিসগুলি ধীর করে দিচ্ছে। আমি জিজ্ঞাসার মূল কারণ হ'ল আমি নেক্সসেসের সাদা কাগজের কিছু গবেষণার ভিত্তিতে এ সম্পর্কিত সম্পর্কিত ধারণাগুলি অন্বেষণ করছি। অত্যন্ত উচ্চ ট্র্যাফিক সাইটের জন্য, সকালে খুব সকালে ফ্লাশ করার পরে ক্যাশেটি
প্রিমিং

1
আমি নেক্সসাকে শ্রদ্ধা করি - তবে পরিবেশগতকরণটি ইতিমধ্যে সম্পাদনযোগ্য এবং কোডটি পরিষ্কার, দ্রুত এবং দক্ষ কিনা তা নিশ্চিত করার চেয়ে তাদের সাদা কাগজটি পারফরম্যান্স অর্জনের জন্য ক্যাচিংয়ে খুব বেশি মনোনিবেশ করে । আমরা আমাদের গ্রাহকদের জন্য বার্নিশ সরবরাহ করি - তবে প্রয়োজনীয় না হওয়া পর্যন্ত এর ব্যবহারের পক্ষে পরামর্শ দেব না। কেবল তখন পরিকাঠামোগুলি ব্যয় হ্রাস করার উপায় হিসাবে - যেমন। যখন-94% নন-রূপান্তরকারী / চেকআউট ট্র্যাফিক সিপিইউ চক্র গ্রহণ করছে। ক্যাচিং দুর্দান্ত কৃত্রিম মানদণ্ডের পরিসংখ্যানগুলির পক্ষে করে - তবে টিটিএলগুলি খুব দীর্ঘ (বাসি সামগ্রী) থাকলে বা বাস্তবে এটি রাখার মতো পর্যাপ্ত ট্র্যাফিক না থাকলে বাস্তবে কিছুই নয়।
বেন লেসানী - সোনাসি

1
অত্যধিক উচ্চ ট্র্যাফিক সাইটের জন্য - আমরা কয়েকটি পেয়েছি এবং কৃত্রিম ক্রলিংয়ের মাধ্যমে ক্যাশে গরম রাখার চেষ্টা করা অর্থহীন - প্রাকৃতিক ট্র্যাফিক এটি ঠিক জরিমানা করে। যদি কিছু থাকে তবে ক্রলিং এমন সংস্থানগুলি সরিয়ে দেয় যা অন্যথায় গ্রাহকরা ব্যবহার করবেন।
বেন লেসানী - সোনাসি

পারফরম্যান্সের জন্য ক্যাশে ব্যবহারের বিষয়ে দৃষ্টি নিবদ্ধ করে আমি তাদের সাদা কাগজে আলাদা করতে অনুরোধ করছি। তারা দেখায় যে একটি 2 + 1 ক্লাস্টার কতটা থ্রুপুট অর্জন করতে পারে। তারা এতে পৃষ্ঠার লোড বারগুলিতেও স্পর্শ করেনি, কেবল লেনদেনের মাধ্যমেই আউটপুট। তাদের কাছে থাকা হার্ডওয়্যারটি আপনি যতটা পেতে পারেন ঠিক ততটাই অনুকূলিত ... এবং হ্যাঁ, আমি ক্যাশেড সামগ্রীতে টিটিএলগুলির প্রভাব বুঝতে পারি। কেবল পুনরাবৃত্তি করতে, আমি এখানে পারফরম্যান্স অর্জন করতে চাই না, আমাদের ইতিমধ্যে এটি রয়েছে। এটি যেটি অনুসন্ধান করবে তা হ'ল ভোরের ক্যাশে ফ্লাশিংয়ের কারণে থ্রুপুটগুলিতে ল্যাগ / ড্রপগুলি বাইপাস করার উপায়গুলি, যেমন সাধারণ ট্র্যাফিক উঠার আগে।
ডেভিডালগার

1
আমি তখন বিভ্রান্ত। যদি আপনার স্টোরটি ইতিমধ্যে দ্রুত হয় - তবে আপনি যখন ক্যাশে সাফ করেন তখন শেষ হয়ে যায়। হয় ক) সকালে ক্যাশে সাফ করবেন না, তার আগের রাতে করুন এবং অনুসন্ধানটি ক্রল বটগুলি (গুগল / বিং ইত্যাদি) আপনার জন্য প্রাইমিং করতে দিন বা খ) সঠিক অবকাঠামো পেতে দিন । যদি আপনার স্টোরটি পিছিয়ে / মন্দা রোধ করতে এফপিসি /
বার্নিশে আবদ্ধ থাকে -

0

আমি এই দিনগুলিতে একটিতে একটি ব্লগ পোস্টের জন্য আমার সম্পূর্ণ রেন্ট সংরক্ষণ করব, তবে এর মধ্যে আমার ছোট্ট ক্যাশে উষ্ণতার শীর্ষে রয়েছে wfpc

পারফরম্যান্স পরীক্ষার

আপনি আপনার ম্যাজেন্টো সাইটের কর্মক্ষমতা পরীক্ষা করতে পারেন

./wfpc -t http://mymagentosite.com/sitemap.xml

Finished testing your Magento site performance
Total download time (in seconds)   : 5.0269110202789
Total download time (formatted)    : 0:0:5.026
Average page time (in milliseconds): 502.69110202789

এফপিসি ওয়ার্মিং

এবং আপনি এফপিসিটি উষ্ণ করতে পারেন, যা সাইটম্যাপ.এক্সএমএল এর প্রতিটি ইউআরএল হিট করবে।

./wfpc -w http://mymagentosite.com/sitemap.xml

আপনি চাইলে অনুরোধগুলির মধ্যে একটি বিলম্বও রাখতে পারেন, অনুরোধগুলির মধ্যে এখানে 1 সেকেন্ড বিলম্ব রয়েছে।

./wfpc -w -d=1 http://mymagentosite.com/sitemap.xml

পরীক্ষা মোডটি এলোমেলোভাবে কেবলমাত্র 10 টি ইউআরএল হিট করে, তাই আপনি একবার আপনার এফপিসিটি গরম করে ফেললে, আপনি এফপিসি কতটা তফাত তৈরি করে তা পরীক্ষা করতে মোড চালাতে পারেন!

থটস

ব্যক্তিগতভাবে, আমি মনে করি একটি উষ্ণতর ধারণাটি তৈরি করেছে ... প্রায় 40 পৃষ্ঠাগুলি সহ একটি ছোট সাইটে ডাউনলোডের সময়টি প্রায় অর্ধেকে এফপিসি দ্বারা কাটা হয়। প্রায় ৪০,০০০ পণ্যসম্পন্ন একটি বড় সাইটে এপিসিইউকে ব্যাকএন্ড হিসাবে লেস্টি_এফপিসি ব্যবহার করে, আমি ক্যাশেটির জন্য 200MB এর কিছুটা বেশি ব্যবহার করছি, যা 8 জিবি প্রোডাকশন সার্ভারে সত্যই কিছুই নয়।

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