লঞ্চার পণ্য Bitnami ডকুমেন্টেশনimaxe CLI ব্লগ যোগাযোগ
imaxe memcached ক্যাশ v1.1.0

ফাইল না ছুঁয়েই ক্যাশ চালান

আপনার ইনস্ট্যান্সের উপযোগী ক্যাশের আকার, থ্রেড ও সংযোগসংখ্যা হিসাব করে প্রয়োগ করে, SASL শংসাপত্রTLS সার্টিফিকেট সামলায়, আর সেবার অবস্থা সরাসরি দেখায় — সবই memcached.conf হাতে সম্পাদনা না করে।

$ imaxe memcached status
সংস্করণ
v1.1.0
সাবকমান্ড
9
কনফিগ
/etc/imaxe/memcached.yml
root লাগে
হ্যাঁ
পোর্ট
11211 TLS · 11212 local

এই মডিউলটি কী করে #

Memcached একটি টেক্সট ফাইল আর মুষ্টিমেয় কয়েকটি ফ্ল্যাগ দিয়ে কনফিগার হয়: কত RAM দেবেন, কতগুলো থ্রেড, কতগুলো সংযোগ। সঠিক সংখ্যাগুলো নির্ভর করে ইনস্ট্যান্সের আকারের ওপর, আর ভুল হলে খরচ বেশি — হয় ক্যাশ কম পড়ে, নয়তো সিস্টেমের প্রয়োজনীয় RAM খেয়ে ফেলে।

memcached মডিউল সেটি এবং সেবার চারপাশের সবকিছু সামলায়: মেশিনের প্রকৃত RAM থেকে টিউনিং হিসাব করে, SASL শংসাপত্র সামলায় (এই ইমেজে বাধ্যতামূলক), প্রথম বুটে তৈরি হওয়া TLS সার্টিফিকেট রক্ষণাবেক্ষণ করে —সেটি কখনও AMI-তে ঢোকানো হয় না— এবং সেবার পরিসংখ্যানসহ সরাসরি অবস্থা দেয়।

শুরুর আগে

যেসব কমান্ড শংসাপত্র পড়ে বা কনফিগারেশন বদলায় তাদের root লাগে (sudo ব্যবহার করুন)। optimize নিয়ে সতর্ক থাকুন: নতুন মান প্রয়োগ করলে সেবা পুনরায় চালু হয়, আর পুনরায় চালু হলে ক্যাশ খালি হয়ে যায়। নিজে পুনরায় চালু করতে চাইলে --no-restart দিন।

দ্রুত নির্দেশিকাধাপে ধাপে কাজ

দ্রুত নির্দেশিকা #

কী করতে চান বেছে নিন। প্রতিটি রেসিপিতে কমান্ড আগে থেকেই লেখা — কপি করে কপি করুন চাপুন।

1

সেবার অবস্থা দেখা

এক নজরে দেখে নিন ক্যাশ সুস্থ কি না এবং কোন টিউনিং প্রয়োগ হয়েছে।

ubuntu ব্যবহারকারী দিয়ে SSH-এ আপনার ইনস্ট্যান্সে যুক্ত হন।

অবস্থা জানতে চান: দেখবেন কোন পোর্টে শুনছে, TLS ও SASL সক্রিয় কি না, প্রয়োগ করা টিউনিং এবং সরাসরি পরিসংখ্যান (ব্যবহৃত মেমরি, আইটেম, হিট ও মিস):

terminal
$ sudo imaxe memcached status

ড্যাশবোর্ড বা স্ক্রিপ্টের জন্য দরকার? --json যোগ করুন:

terminal
$ sudo imaxe memcached status --json
hits বাড়তে থাকলে ও evictions কম থাকলে ক্যাশের আকার ঠিক আছে। উচ্ছেদ বেড়ে গেলে ক্যাশের আকার সমন্বয়-এ যান।
2

ক্যাশে সংযোগ করা

আপনার অ্যাপ্লিকেশন যুক্ত করার জন্য ব্যবহারকারী, পাসওয়ার্ড ও পোর্ট নিন।

এই ইমেজে SASL বাধ্যতামূলক: বেনামি প্রবেশ নেই। এই ইনস্ট্যান্সের শংসাপত্র চান (পাসওয়ার্ড ঢাকা অবস্থায় আসে):

terminal
$ sudo imaxe memcached credentials

সত্যিই কপি করার সময় সেটি খোলা অবস্থায় দেখান:

terminal
$ sudo imaxe memcached credentials --show-password
11211 পোর্ট TLS-এ চলে; 11212 সাদা টেক্সট এবং কেবল loopback-এ শোনে, সিস্টেমের নিজস্ব সরঞ্জামের জন্য। 11211 ইন্টারনেটে খুলবেন না: আপনার VPC-র CIDR-এর জন্য খুলুন।
3

ক্যাশের আকার সমন্বয় করা

মেশিনের প্রকৃত আকার অনুযায়ী মেমরি, থ্রেড ও সংযোগ পুনরায় হিসাব করুন।

আগে দেখুন কী মান বেরোবে, কিছু না বদলে:

terminal
$ sudo imaxe memcached optimize --show

পছন্দ হলে প্রয়োগ করুন। সেবা পুনরায় চালু হবে এবং ক্যাশ খালি হবে:

terminal
$ sudo imaxe memcached optimize

বেশি ক্যাশ আর সিস্টেমের জন্য কম জায়গা চান? RAM-এর শতাংশ বাড়ান:

terminal
$ sudo imaxe memcached optimize --memory-pct 75
--dry-run দিলে যে কনফিগারেশন ব্লক লেখা হতো তাও দেখবেন। আর --no-restart দিলে পুনরায় চালু না করেই প্রয়োগ হয়: নতুন মান পরের বুটে কার্যকর হবে।
4

SASL ব্যবহারকারী তৈরি করা

আপনার অ্যাপ্লিকেশনের শংসাপত্র তৈরি, পরিবর্তন বা মুছে ফেলুন।

SASL ডেটাবেসে থাকা ব্যবহারকারীদের তালিকা দেখুন:

terminal
$ sudo imaxe memcached users list

প্রতিটি অ্যাপ্লিকেশনের জন্য একটি তৈরি করুন, এলোমেলো পাসওয়ার্ডসহ:

terminal
$ sudo imaxe memcached users add app1

নির্দিষ্ট পাসওয়ার্ড চাই? স্ট্যান্ডার্ড ইনপুট দিয়ে পাঠান, যেন তা ps বা শেল ইতিহাসে না থাকে:

terminal
$ sudo imaxe memcached users add app1 --stdin
কোনো ব্যবহারকারীর পাসওয়ার্ড বদলাতে: imaxe memcached users rotate <ব্যবহারকারী>। নাম না দিলে পণ্যের ব্যবহারকারীরটি বদলায়।
5

TLS সার্টিফিকেট পরীক্ষা করা

মেয়াদ পরীক্ষা করুন এবং ইনস্ট্যান্সের সার্টিফিকেট নবায়ন করুন।

সার্টিফিকেট প্রতিটি ইনস্ট্যান্সের প্রথম বুটে তৈরি হয়, তাই মেশিনগুলোর মধ্যে কখনও ভাগ হয় না। বর্তমানে যেটি চলছে দেখুন:

terminal
$ sudo imaxe memcached tls show

যখন খুশি নবায়ন করুন, বর্তমানটি এখনও বৈধ থাকলেও:

terminal
$ sudo imaxe memcached tls renew --force
এটি দীর্ঘ মেয়াদের স্ব-স্বাক্ষরিত সার্টিফিকেট। আপনার ক্লায়েন্টকে এতে আস্থা রাখতে হবে বা এর SHA-256 ফিঙ্গারপ্রিন্ট যাচাই করতে হবে, যেটি tls show ছাপে।
চালু হচ্ছে না, বা শংসাপত্র মিলছে না?

শংসাপত্র ও সার্টিফিকেট প্রতিটি বুটে instance-setup তৈরি করে, যাকে systemd ডাকে। কোনো কমান্ড 65 কোড ফেরালে বুঝবেন ওই ইনস্ট্যান্স প্রথম বুট শেষ করেনি: কিছু বদলানোর আগে sudo systemctl status memcached দেখুন।

CLI রেফারেন্সকমান্ড, ফ্ল্যাগ ও ফাইল

সংক্ষিপ্তসার #

ব্যবহার
imaxe memcached <সাবকমান্ড> [flags]

প্রায় সব সাবকমান্ডেরই root লাগে (sudo দিন), কারণ সেগুলো SASL ডেটাবেস, সার্টিফিকেট বা সেবার কনফিগারেশন পড়ে। যন্ত্রপাঠ্য আউটপুটের জন্য status, credentials, users list বা tls show-এর সঙ্গে --json দিন।

সাবকমান্ড #

সাবকমান্ডকী করেপ্রাসঙ্গিক ফ্ল্যাগ
optimizeএই ইনস্ট্যান্সের জন্য সেরা ক্যাশ আকার, থ্রেড ও সংযোগ হিসাব করে প্রয়োগ করে।--memory-pct --dry-run --show --no-restart
statusসেবার অবস্থা: শ্রোতা, TLS, SASL, প্রয়োগ করা টিউনিং ও সরাসরি পরিসংখ্যান।--json
credentialsএই ইনস্ট্যান্সের SASL শংসাপত্র ও সংযোগের উপায় দেখায়।--json --show-password
usersSASL ব্যবহারকারী সামলায়: list, add, rotatedelete--password --stdin --json
set-passwordপ্রোডাক্টের SASL ব্যবহারকারীর পাসওয়ার্ড বদলায়। users rotate-এর শর্টকাট।--random --stdin
open-portহোস্ট ফায়ারওয়ালে (ufw) memcached পোর্ট খোলে।--cidr --json
close-portহোস্ট ফায়ারওয়ালে পোর্ট বন্ধ করে এবং থাকা নিয়মগুলো সরায়।--json
tlsএই ইনস্ট্যান্সের TLS সার্টিফিকেট: showrenew--force --json
instance-setupসেবা চালুর আগে ইনস্ট্যান্স প্রস্তুত করে। প্রতিটি বুটে systemd এটি ডাকে।--bake

আর্গুমেন্ট ও ফ্ল্যাগ #

ফ্ল্যাগধরনডিফল্টবিবরণ
--memory-pctint60optimize-এ: ব্যবহারযোগ্য RAM-এর যত শতাংশ ক্যাশে দেওয়া হয়।
--reserve-mem-mbint512optimize-এ: MB-তে যে RAM ছোঁয়া হয় না, সিস্টেম ও অন্যান্য সেবার জন্য সংরক্ষিত।
--threadsint0optimize-এ: কর্মী থ্রেড। 0 হলে CPU সংখ্যা থেকে নির্ধারিত হয়।
--max-connectionsint0optimize-এ: যুগপৎ সংযোগ। 0 হলে ক্যাশের আকার থেকে নির্ধারিত হয়।
--dry-runboolfalseoptimize-এ: কিছু লেখে না; মানগুলো ও যে কনফিগারেশন ব্লক প্রয়োগ হতো তা দেখায়।
--showboolfalseoptimize-এ: কেবল হিসাব করা মানগুলো ছাপে।
--no-restartboolfalseoptimize-এ: কনফিগারেশন লেখে কিন্তু সেবা পুনরায় চালু করে না। পুনরায় চালু হলে ক্যাশ খালি হয়।
--passwordstringusers add/rotate-এ: নির্দিষ্ট পাসওয়ার্ড। না দিলে এলোমেলো তৈরি হয়।
--stdinboolfalseusers add/rotate-এ: স্ট্যান্ডার্ড ইনপুট থেকে পাসওয়ার্ড পড়ে, যাতে তা ps বা ইতিহাসে না দেখা যায়।
--show-passwordboolfalsecredentials-এ: পাসওয়ার্ড খোলা অবস্থায় ছাপে। ডিফল্টে ঢাকা থাকে।
--forceboolfalsetls renew-এ: বর্তমান সার্টিফিকেট বৈধ ও এই ইনস্ট্যান্সের হলেও পুনরায় তৈরি করে।
--randomboolfalseset-password-এ: শক্তিশালী পাসওয়ার্ড তৈরি করে একবারই দেখায়।
--cidrstringopen-port-এ: নিয়মটি ওই উৎসেই সীমিত রাখে। না দিলে যেকোনো উৎস অনুমোদিত।
--jsonboolfalseফলাফল কাঠামোবদ্ধ JSON হিসেবে stdout-এ দেয়।

ফাইল ও পথ #

পথবিষয়বস্তু
/etc/imaxe/memcached.ymlমডিউলের কনফিগারেশন: সেবা, পথ, এবং optimize, TLS ও SASL-এর ডিফল্ট মান।
/etc/memcached.confmemcached-এর কনফিগারেশন। optimize এটি লেখে: হাতে সম্পাদনা করবেন না।
/etc/systemd/system/memcached.service.d/systemd drop-in, মডিউল যে চালুর প্যারামিটার প্রয়োগ করে তা নিয়ে।
/etc/memcached/tls/এই ইনস্ট্যান্সের সার্টিফিকেট ও ব্যক্তিগত কী, প্রথম বুটে তৈরি।
/etc/sasl2/memcached-sasldb2SASL ডেটাবেস, ব্যবহারকারী ও তাঁদের পাসওয়ার্ডসহ।

memcached.yml-এর উদাহরণ:

/etc/imaxe/memcached.yml
service: memcached
port: 11211
optimize:
  memory_pct: 60
  memory_min_mb: 64
  reserve_mem_mb: 512
  threads: 0
  max_connections: 0
tls:
  enabled: true
  days: 3650
  plain_local_port: 11212
sasl:
  enabled: true
  user: memcached

প্রস্থান কোড ও লগ #

প্রতিটি চালনা একটি কোড ফেরায় যা echo $? দিয়ে দেখা যায় — স্ক্রিপ্টে জোড়ার জন্য কাজে লাগে:

0OKকাজ সফলভাবে সম্পন্ন হয়েছে।
1ERRঅশ্রেণিবদ্ধ সাধারণ ত্রুটি। লগ দেখুন।
2USAGEঅবৈধ আর্গুমেন্ট বা সাবকমান্ড।
64NOMEMCACHEDএই মেশিনে memcached ইনস্টল করা নেই।
65NOSECRETএমন শংসাপত্র চাওয়া হয়েছে যা এই ইনস্ট্যান্স এখনও তৈরি করেনি।
66NOUFWএই মেশিনে ufw নেই।

কাজ করার সময় সেবাকে সরাসরি অনুসরণ করুন:

terminal
$ sudo systemctl status memcached
$ sudo journalctl -u memcached -f

সমস্যা সমাধান #

লক্ষণসম্ভাব্য কারণসমাধান
NOSECRET আসে (কোড 65)ইনস্ট্যান্স প্রথম বুট শেষ করেনি, আর তখনই শংসাপত্র তৈরি হয়।sudo systemctl status memcached দেখে আবার চেষ্টা করুন।
NOMEMCACHED আসে (কোড 64)মডিউল ইনস্টল আছে কিন্তু হোস্টে memcached নেই।আপনি পণ্যের ইমেজে নেই: memcached ইনস্টল করুন বা সঠিক AMI ব্যবহার করুন।
status-এ প্রচুর evictionsযা রাখছেন তার তুলনায় ক্যাশ ছোট: জায়গা করতে আইটেম উচ্ছেদ হয়।optimize --memory-pct দিয়ে শতাংশ বাড়ান বা বেশি RAM-এর ইনস্ট্যান্সে যান।
ক্যাশ হঠাৎ খালি দেখায়সেবা পুনরায় চালু হয়েছে, আর memcached ডিস্কে কিছু রাখে না।optimize-এর পর স্বাভাবিক। পুনরায় চালু না করে প্রয়োগ করতে --no-restart দিন।
ক্লায়েন্ট সার্টিফিকেট প্রত্যাখ্যান করেএটি স্ব-স্বাক্ষরিত এবং প্রতিটি ইনস্ট্যান্সের নিজস্ব।ক্লায়েন্টে এতে আস্থা রাখুন বা tls show দিয়ে ফিঙ্গারপ্রিন্ট যাচাই করুন।

Memcached মডিউল নিয়ে আটকে গেছেন?

«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।

সাপোর্টে যোগাযোগ করুন