এলাস্টিচেড রেডিসে অদলবদল এড়ানো


14

আমাদের ইলাস্টিচেড রেডিসের অদলবদলটি অদলবদল করে চলতে আমাদের সমস্যা হচ্ছে trouble অ্যামাজনকে এমন জায়গায় কিছু অশোধিত অভ্যন্তরীণ পর্যবেক্ষণ রয়েছে বলে মনে হচ্ছে যা ব্যবহারের স্পাইকগুলিকে স্বাচ্ছন্দিত করে এবং কেবলমাত্র ইলাস্টিচ্যাচ পুনরায় সূচনা করে (যার ফলে আমাদের সমস্ত ক্যাশেড আইটেম হারাতে পারে)। গত 14 দিনের জন্য আমাদের এলাস্টি ক্যাশে বাইটসউসডফোর্ডক্যাচ (নীল লাইন) এবং স্বাপসেজ (কমলা লাইন) এর চার্টটি এখানে রয়েছে:

রেডিস এলাস্টি ক্যাশে বাইটস ইউজডফরচ্যাচ এবং অদলবদল

আমাদের ElastiCache উদাহরণস্বরূপ রিবুটগুলি ট্রিগার করতে ক্রমবর্ধমান অদলবদ ব্যবহারের প্যাটার্ন আপনি দেখতে পাচ্ছেন, যেখানে আমরা আমাদের সমস্ত ক্যাশেড আইটেম হারাতে পারি (বাইটস ইউসেডফোর্স ক্যাশে 0 তে নেমে আসে)।

আমাদের ইলাস্টি ক্যাশে ড্যাশবোর্ডের 'ক্যাশে ইভেন্টস' ট্যাবটিতে সংশ্লিষ্ট এন্ট্রি রয়েছে:

উত্স আইডি | প্রকার | তারিখ | ঘটনা

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | মঙ্গল 22 সেপ্টেম্বর 07:34:47 GMT-400 2015 | ক্যাশে নোড 0001 পুনরায় চালু হয়েছে

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | মঙ্গল 22 সেপ্টেম্বর 07:34:42 GMT-400 2015 | নোড 0001 এ ক্যাশে ইঞ্জিনটি পুনরায় চালু করতে ত্রুটি

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | সান সেপ্টেম্বর 20 11:13:05 GMT-400 2015 | ক্যাশে নোড 0001 পুনরায় চালু হয়েছে

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | থু সেপ্টেম্বর 22:59:50 GMT-400 2015 | ক্যাশে নোড 0001 পুনরায় চালু হয়েছে

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | বুধ সেপ্টেম্বর 16 10:36:52 GMT-400 2015 | ক্যাশে নোড 0001 পুনরায় চালু হয়েছে

ক্যাশে-দৃষ্টান্ত-আইডি | ক্যাশে-গুচ্ছ | মঙ্গল 15 সেপ্টেম্বর 05:02:35 GMT-400 2015 | ক্যাশে নোড 0001 পুনরায় চালু হয়েছে

(পূর্ববর্তী এন্ট্রি স্নিপ করুন)

অ্যামাজন দাবি করেছে :

অদলবদল - সাধারণ ব্যবহারে মেমক্যাচড বা রেডিস দু'জনেরই অদলবদল করা উচিত নয়

আমাদের প্রাসঙ্গিক (অ-ডিফল্ট) সেটিংস:

  • দৃষ্টান্তের ধরণ: cache.r3.2xlarge
  • maxmemory-policy: allkeys-lru (আমরা পূর্বে খুব বেশি পার্থক্য ছাড়াই ডিফল্ট উদ্বায়ী-লু ব্যবহার করছিলাম)
  • maxmemory-samples: 10
  • reserved-memory: 2500000000
  • উদাহরণটিতে INFO কমান্ডটি পরীক্ষা করা হচ্ছে, আমি mem_fragmentation_ratio1.00 থেকে 1.05 এর মধ্যে দেখতে পাচ্ছি

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

maxmemoryএকটি cache.r3.2xlarge এর টুপি 62495129600 বাইট, এবং যদিও আমরা আমাদের টুপি আঘাত (বিয়োগ আমাদের reserved-memory) দ্রুত, আমার অদ্ভুত যে হোস্ট অপারেটিং সিস্টেমের এখানে এত swap 'র ব্যবহার করতে চাপ বোধ করবে বলে মনে হয়, এবং তাই দ্রুত, যদি না অ্যামাজন কোনও কারণে ওএস অদলবদল সেটিংস ক্র্যাঙ্ক করেছে। এলাস্তিচিচে / রেডিসে আমরা এত স্বাপের ব্যবহারের কারণ বা কেন চেষ্টা করব তার কোনও ধারণাই?

উত্তর:


7

যেহেতু এখানে কারওরও উত্তর ছিল না, তাই ভেবেছিলাম যে আমি কেবল আমাদের জন্য কাজ করেছি তা ভাগ করব। প্রথমত, এই ধারনা হয়নি না কাজ:

  • বৃহত্তর ক্যাশে উদাহরণ টাইপ: আমরা এখন যে ক্যাশে ব্যবহার করছি তার চেয়ে ছোট উদাহরণগুলিতে একই সমস্যা ছিল r
  • টুইট করা maxmemory-policy: উদ্বায়ী-লু বা অ্যালকেইস-লু কোনওরকমই কোনও পার্থক্য মনে হয়নি
  • লাফিয়ে উঠা maxmemory-samples
  • লাফিয়ে উঠা reserved-memory
  • সমস্ত ক্লায়েন্টদের একটি মেয়াদোত্তীর্ণ সময় নির্ধারণ করতে বাধ্য করা হয়, সাধারণত কয়েকটি বিরল কলার সহ সাধারণত 24 ঘন্টা অন্তত 7 দিন অবধি সময় দেয়, তবে বিপুল সংখ্যক কলার 1-6 ঘন্টা মেয়াদোত্তীর্ণ সময় ব্যবহার করে।

অবশেষে কী সাহায্য করেছে তা এখানে: অনেকগুলি বার বার একটি স্ক্যান চালায় যা একটি স্ক্যান চালায়COUNT 10,000 এর সমস্ত অংশ ( ) ( ) এর সমস্ত উপর । এখানে সেই একই উদাহরণের বাইটসুসেডফোর্স ক্যাশে, এখনও আগের তুলনায় আরও ভারী ব্যবহারের অধীনে একটি ক্যাশে.r3.2xlarge উদাহরণ, আগের মতো সেটিংস সহ:

BytesUsedForCache

মেমরি ব্যবহারে করাত টুটা ক্রোন কাজের সময়ের সাথে মিলে যায়। এই দুই সপ্তাহের সময়কালে আমাদের অদলবদলের ব্যবহারটি to 45 এমবি (প্রথমবার পুনরায় আরম্ভের আগে GB 5 গিগাবাইটে শীর্ষস্থানীয়) এ উঠে গেছে। এবং এলাস্টি ক্যাশে ক্যাশে ইভেন্টস ট্যাব আর কোনও ক্যাশে পুনঃসূচনা ইভেন্টের প্রতিবেদন করে না।

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


জোশ, আপনি কি এই বিষয় নিয়ে কাজ করে আরও কিছু অগ্রগতি হয়েছে তা ভাবছেন? আমরাও একই ধরণের পরিস্থিতিতে পড়ছি। আপনি কি এখনও আগের মতো একই সমাধান ব্যবহার করছেন?
অ্যান্ড্রু সি

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

শুনে ভাল লাগলো; আমরা পৃথক ক্যাশে লোড করে ক্যাশে লোড করার অনুরূপ পন্থা নিয়েছিলাম। কীভাবে ক্লাস্টারিং অদলবদলের ব্যবহার হ্রাস করতে সহায়তা করবে সে সম্পর্কে আপনার অনুমান কী? শুধু সামগ্রিক বোঝা হ্রাস করে?
অ্যান্ড্রু সি

@ জোশকুপারশ্মিটেড আমার নায়ক
মরিয়ার্টি

1

আমি জানি এটি পুরানো হতে পারে তবে আমি দস্তাবেজগুলিতে এটি ছড়িয়ে দিয়েছি।

https://aws.amazon.com/elasticache/pricing/ তারা বলেছে যে r3.2xlarge এর স্মৃতি 58.2gb রয়েছে।

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.Redis.html তারা বলেছে যে সিস্টেমের ম্যাক্সমেমরি 62gb (এটি যখন সর্বাধিক-নীতিতে শুরু হয়) এবং এটি পরিবর্তন করা যায় না । দেখে মনে হচ্ছে রেডিসের সাথে এডাব্লুএসে আমরা কীভাবে পরিবর্তন করব ..


এডাব্লুএস এর অধিকার আছে - তারা বলে ম্যাক্সেমোমোরি 62495129600বাইট, যা হ'ল 58.2 জিআইবি। মূল্য পৃষ্ঠা আপনি লিঙ্ক GiB, না গিগাবাইট এককে মেমরি আছে। maxmemoryপরামিতি সম্ভবতঃ সংশোধনযোগ্য কারণ যেমন Redis দ্বারা উপলব্ধ ভাল নব হয় নয় reserved-memoryযে সংশোধনযোগ্য হয় (যদিও যে এক আমাকে সাহায্য করা হয়নি ...), এবং ডেস্কটপ AWS আপনাকে Redis কহন যেমন দ্বারা নোড misconfiguring চায় না এলাস্টাস্টি ভিএম এর চেয়ে বেশি মেমরি ব্যবহার করুন।
জোশ কুপারশ্মিদট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.