लॉन्चर उत्पाद 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, rotate और delete--password --stdin --json
set-passwordप्रोडक्ट के SASL उपयोगकर्ता का पासवर्ड बदलता है। users rotate का शॉर्टकट।--random --stdin
open-portहोस्ट फ़ायरवॉल (ufw) में memcached पोर्ट खोलता है।--cidr --json
close-portहोस्ट फ़ायरवॉल में पोर्ट बंद करता है और मौजूदा नियम हटाता है।--json
tlsइस इंस्टेंस का TLS प्रमाणपत्र: show और renew--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» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।

सहायता से संपर्क करें