በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

ማስታወሻ. ትርጉምበዚህ ጽሑፍ ውስጥ ባንዛይ ክላውድ ካፍካን በኩበርኔትስ ውስጥ ለመጠቀም ቀላል ለማድረግ ብጁ መሣሪያዎቹ እንዴት ጥቅም ላይ እንደሚውሉ የሚያሳይ ምሳሌ አካፍሏል። የሚከተለው መመሪያ የመሠረተ ልማትዎን ትክክለኛ መጠን እንዴት እንደሚወስኑ እና አስፈላጊውን የፍጆታ መጠን ለማሳካት ካፍካ እራሱን ማዋቀር እንደሚችሉ ያሳያል።

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

Apache Kafka አስተማማኝ፣ ሊለኩ የሚችሉ እና ከፍተኛ አፈጻጸም ያላቸው የእውነተኛ ጊዜ የዥረት ስርዓቶችን ለመፍጠር የሚሰራጭ የዥረት መድረክ ነው። የእሱ አስደናቂ ችሎታዎች Kubernetes በመጠቀም ሊራዘም ይችላል. ለዚህም አዳብነናል። ክፍት ምንጭ የካፍካ ኦፕሬተር እና አንድ መሳሪያ ይባላል ሱፐር ቱቦዎች. ካፍካን በኩበርኔትስ ላይ እንድታስኬድ እና የተለያዩ ባህሪያቶቹን እንድትጠቀም ይፈቅድልሃል፣ ለምሳሌ የደላላውን ውቅረት ማስተካከል፣ በሜትሪክ ላይ የተመሰረተ ልኬት ከዳግም ማመጣጠን ጋር፣ የመደርደሪያ ግንዛቤ፣ "ለስላሳ" (አስደሳች) ማሻሻያዎችን መልቀቅ ፣ ወዘተ.

በክላስተርዎ ውስጥ ሱፐር ቱቦዎችን ይሞክሩ፡

curl https://getsupertubes.sh | sh и supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>

ወይም ተገናኝ ሰነድ. እንዲሁም ስለ አንዳንድ የካፍካ ችሎታዎች ማንበብ ትችላለህ፣ ስራው ሱፐርቱብ እና የካፍካ ኦፕሬተርን በመጠቀም በራስ ሰር የሚሰራው። በብሎግ ላይ ስለእነሱ አስቀድመን ጽፈናል፡-

በካፍካ ክላስተር በኩበርኔትስ ላይ ለማሰማራት ስትወስኑ የስር መሠረተ ልማትን በጣም ጥሩ መጠን የመወሰን እና የፍሰት መስፈርቶችን ለማሟላት የካፍ ውቅረትህን የማስተካከል አስፈላጊነትን የመወሰን ፈተና ሊገጥምህ ይችላል። የእያንዳንዱ ደላላ ከፍተኛ አፈፃፀም የሚወሰነው እንደ ማህደረ ትውስታ ፣ ፕሮሰሰር ፣ የዲስክ ፍጥነት ፣ የአውታረ መረብ ባንድዊድዝ ፣ ወዘተ ባሉ መሰረታዊ የመሠረተ ልማት ክፍሎች አፈፃፀም ነው።

በሐሳብ ደረጃ፣ የደላላው አወቃቀሩ ሁሉም የመሠረተ ልማት አካላት እስከ ከፍተኛ አቅማቸው ጥቅም ላይ እንዲውሉ መሆን አለበት። ይሁን እንጂ በእውነተኛ ህይወት ውስጥ ይህ አቀማመጥ በጣም የተወሳሰበ ነው. ተጠቃሚዎች አንድ ወይም ሁለት አካላት (ዲስክ፣ ማህደረ ትውስታ ወይም ፕሮሰሰር) አጠቃቀምን ከፍ ለማድረግ ደላላዎችን የማዋቀር ዕድላቸው ሰፊ ነው። በአጠቃላይ አወቃቀሩ በጣም ቀርፋፋውን አካል ሙሉ በሙሉ ለመጠቀም ሲፈቅድ አንድ ደላላ ከፍተኛውን አፈጻጸም ያሳያል። በዚህ መንገድ አንድ ደላላ ሊቋቋመው ስለሚችለው ሸክም ግምታዊ ሀሳብ ማግኘት እንችላለን።

በንድፈ ሃሳብ ደረጃ፣ የተሰጠውን ጭነት ለማስተናገድ የሚያስፈልጉትን የደላሎች ብዛት መገመት እንችላለን። ይሁን እንጂ በተግባር ግን በተለያየ ደረጃ ላይ ያሉ ብዙ የማዋቀሪያ አማራጮች ስላሉ የአንድ የተወሰነ ውቅር እምቅ አፈጻጸም ለመገምገም በጣም አስቸጋሪ ነው (ከማይቻል). በሌላ አነጋገር በአንዳንድ የተሰጡ አፈጻጸም ላይ የተመሰረተ ውቅረት ማቀድ በጣም ከባድ ነው.

ለሱፐርቱብ ተጠቃሚዎች ብዙውን ጊዜ የሚከተለውን አካሄድ እንወስዳለን-በአንዳንድ ውቅረት (መሰረተ ልማት + መቼቶች) እንጀምራለን ፣ ከዚያ አፈፃፀሙን እንለካለን ፣ የደላላ ቅንብሮችን ያስተካክሉ እና ሂደቱን እንደገና ይድገሙት። ይህ የሚሆነው በጣም ቀርፋፋው የመሠረተ ልማት ክፍል ሙሉ በሙሉ ጥቅም ላይ እስኪውል ድረስ ነው።

በዚህ መንገድ ክላስተር ምን ያህል ደላላዎች የተወሰነ ሸክም ለመሸከም እንደሚያስፈልጋቸው የበለጠ ግልፅ ሀሳብ እናገኛለን (የደላሎች ብዛት በሌሎች ሁኔታዎች ላይ የተመሰረተ ነው, ለምሳሌ አነስተኛውን የመልዕክት ቅጂዎች የመቋቋም አቅምን ለማረጋገጥ, የክፍፍል ብዛት. መሪዎች, ወዘተ.). በተጨማሪም, የትኞቹ የመሠረተ ልማት ክፍሎች አቀባዊ ልኬት እንደሚያስፈልጋቸው ግንዛቤ እናገኛለን.

ይህ ጽሑፍ በመጀመሪያ አወቃቀሮች ውስጥ ካሉት በጣም ቀርፋፋ አካላት ምርጡን ለማግኘት ስለምንወስዳቸው እርምጃዎች እና የካፍካ ክላስተር ፍሰትን እንለካለን። በጣም የሚቋቋም ውቅር ቢያንስ ሶስት አሂድ ደላላ ያስፈልገዋል (min.insync.replicas=3) በሦስት የተለያዩ የተደራሽነት ዞኖች ተሰራጭቷል። የኩበርኔትስ መሠረተ ልማትን ለማዋቀር ፣ለመለካት እና ለመቆጣጠር የራሳችንን የእቃ መያዣ አስተዳደር መድረክን ለተዳቀሉ ደመናዎች እንጠቀማለን - ቧንቧው. በግቢው ላይ (ባዶ ብረት፣ VMware) እና አምስት አይነት ደመናዎችን (አሊባባን፣ AWS፣ Azure፣ Googleን፣ Oracleን) እንዲሁም ማናቸውንም ጥምርን ይደግፋል።

በካፍካ ክላስተር መሠረተ ልማት እና ውቅረት ላይ ያሉ ሀሳቦች

ከታች ላሉት ምሳሌዎች AWS እንደ ደመና አቅራቢ እና EKS እንደ Kubernetes ስርጭት መርጠናል. ተመሳሳይ ውቅር በመጠቀም ሊተገበር ይችላል ፒ.ኬ. - የኩበርኔትስ ስርጭት ከባንዛይ ክላውድ፣ በCNCF የተረጋገጠ።

ዲስክ

Amazon የተለያዩ ያቀርባል የኢቢኤስ መጠን ዓይነቶች. በዋናው ላይ gp2 и io1 ከፍተኛ ፍሰት መኖሩን ለማረጋገጥ ግን የኤስኤስዲ ተሽከርካሪዎች አሉ። gp2 የተጠራቀሙ ክሬዲቶችን ይበላል (I/O ምስጋናዎች), ስለዚህ እኛ ዓይነትን መርጠናል io1, ይህም የማያቋርጥ ከፍተኛ ፍሰት ያቀርባል.

የአብነት ዓይነቶች

የካፍካ አፈጻጸም በስርዓተ ክወናው ገጽ መሸጎጫ ላይ በጣም ጥገኛ ነው፣ስለዚህ ለደላላዎች (JVM) እና የገጽ መሸጎጫ በቂ ማህደረ ትውስታ ያላቸው አጋጣሚዎች ያስፈልጉናል። ምሳሌ c5.2x ትልቅ - ጥሩ ጅምር ፣ 16 ጊባ ማህደረ ትውስታ ስላለው እና ከኢቢኤስ ጋር ለመስራት የተመቻቸ. ጉዳቱ በየ 30 ሰዓቱ ከ 24 ደቂቃዎች ያልበለጠ ከፍተኛውን አፈፃፀም ማቅረብ መቻል ነው። የሥራ ጫናዎ ረዘም ላለ ጊዜ ከፍተኛ አፈጻጸም የሚፈልግ ከሆነ፣ ሌሎች የአብነት ዓይነቶችን ግምት ውስጥ ማስገባት ይፈልጉ ይሆናል። ያ ነው ያደረግነው፣ ቆም ብለን c5.4x ትልቅ. ከፍተኛውን የመግቢያ መጠን ያቀርባል 593,75 ሜባበሰ. ከፍተኛው የኢቢኤስ መጠን io1 ከአብነት በላይ c5.4x ትልቅስለዚህ የመሠረተ ልማት አውታሮች በጣም ቀርፋፋው የዚህ ምሳሌ አይ/ኦ ፍሰት ሊሆን ይችላል (የእኛ ጭነት ፈተናዎችም ማረጋገጥ አለባቸው)።

አውታረ መረብ

ከቪኤም ምሳሌ እና ዲስክ አፈፃፀም ጋር ሲነፃፀር የአውታረ መረቡ ፍሰት በቂ መሆን አለበት ፣ አለበለዚያ አውታረ መረቡ ማነቆ ይሆናል። በእኛ ሁኔታ, የአውታረ መረብ በይነገጽ c5.4x ትልቅ እስከ 10 Gb/s የሚደርስ ፍጥነትን ይደግፋል፣ይህም ከቪኤም ምሳሌ የ I/O መጠን በእጅጉ ከፍ ያለ ነው።

ደላላ ማሰማራት

ለሲፒዩ፣ ማህደረ ትውስታ፣ አውታረ መረብ እና የዲስክ ሃብቶች ከሌሎች ሂደቶች ጋር መወዳደርን ለማስቀረት ደላላዎች (በኩበርኔትስ ውስጥ መርሐግብር ተይዞላቸው) ወደተወሰኑ ኖዶች መሰማራት አለባቸው።

የጃቫ ስሪት

አመክንዮአዊ ምርጫው ጃቫ 11 ነው ምክንያቱም ከዶከር ጋር ተኳሃኝ ስለሆነ JVM ደላላው በሚሰራበት መያዣ ውስጥ የሚገኙትን ፕሮሰሰሮች እና ሚሞሪ በትክክል ይወስናል። የሲፒዩ ገደቦች አስፈላጊ መሆናቸውን በማወቅ JVM በውስጥ እና በግልፅ የጂሲ ክሮች እና የጂአይቲ ክሮች ብዛት ያዘጋጃል። የካፍካ ምስል ተጠቀምን። banzaicloud/kafka:2.13-2.4.0በጃቫ 2.4.0 ላይ የካፍካ ስሪት 2.13 (ስካላ 11) ያካትታል።

ስለ Java/JVM በ Kubernetes ላይ የበለጠ ለማወቅ ከፈለጉ የሚከተሉትን ጽሑፎቻችንን ይመልከቱ።

ደላላ ትውስታ ቅንብሮች

የደላላ ማህደረ ትውስታን ለማዋቀር ሁለት ቁልፍ ገጽታዎች አሉ፡ ለ JVM እና ለ Kubernetes ፖድ ቅንጅቶች። JVM በራሱ ማህደረ ትውስታ ውስጥ ለሚኖረው የጃቫ ሜታ ስፔስ እና ካፍ በንቃት ለሚጠቀመው የስርዓተ ክወና ገጽ መሸጎጫ ቦታ እንዲኖረው ለፖድ የተቀመጠው የማህደረ ትውስታ ገደብ ከከፍተኛው ክምር መጠን የበለጠ መሆን አለበት። በፈተናዎቻችን የካፍካ ደላሎችን በመለኪያ አስጀምረናል። -Xmx4G -Xms2G, እና ለፖድ የማስታወስ ገደብ ነበር 10 Gi. እባክዎ የ JVM የማህደረ ትውስታ ቅንብሮችን በመጠቀም በራስ-ሰር ሊገኙ እንደሚችሉ ልብ ይበሉ -XX:MaxRAMPercentage и -X:MinRAMPercentage, ለፖድ የማህደረ ትውስታ ገደብ መሰረት.

ደላላ ፕሮሰሰር ቅንብሮች

በአጠቃላይ ፣ በካፍካ የሚጠቀሙባቸውን ክሮች ቁጥር በመጨመር ትይዩነትን በመጨመር አፈፃፀሙን ማሻሻል ይችላሉ። ለካፍካ ብዙ ፕሮሰሰሮች ሲገኙ የተሻለ ይሆናል። በፈተናችን በ6 ፕሮሰሰር ወሰን ጀምረን ቀስ በቀስ (በድግግሞሽ) ቁጥራቸውን ወደ 15 አሳድገናል።በተጨማሪም አዘጋጅተናል። num.network.threads=12 በደላላ ቅንጅቶች ውስጥ ከአውታረ መረቡ መረጃ የሚቀበሉትን ክሮች ቁጥር ለመጨመር እና ለመላክ። ወዲያው ተከታዮቹ ደላሎች ቅጂዎችን በበቂ ፍጥነት መቀበል አለመቻሉን ሲያውቁ አነሱ num.replica.fetchers ተከታዮቹ ደላሎች ከመሪዎች የሚመጡትን መልዕክቶች የሚደግሙበትን ፍጥነት ለመጨመር ወደ 4.

የመጫኛ ትውልድ መሣሪያ

የካፍካ ክላስተር (በመመዘኛ ላይ ያለው) ከፍተኛውን ጭነት ከመድረሱ በፊት የተመረጠው የጭነት ጀነሬተር አቅም አለመኖሩን ማረጋገጥ አለብዎት። በሌላ አነጋገር የጭነት ማመንጨት መሣሪያን አቅም የመጀመሪያ ደረጃ ግምገማ ማካሄድ እና እንዲሁም በቂ የአቀነባባሪዎች እና የማስታወስ ችሎታ ያላቸውን የአብነት ዓይነቶችን መምረጥ አስፈላጊ ነው ። በዚህ ሁኔታ የእኛ መሳሪያ የካፍካ ክላስተር ሊይዝ ከሚችለው በላይ ብዙ ጭነት ይፈጥራል. ከብዙ ሙከራዎች በኋላ, በሶስት ቅጂዎች ላይ ተቀመጥን c5.4x ትልቅእያንዳንዳቸው ጀነሬተር ነበራቸው።

Benchmarking

የአፈጻጸም መለኪያ የሚከተሉትን ደረጃዎች ያካተተ ተደጋጋሚ ሂደት ነው፡

  • የመሠረተ ልማት አውታር (EKS ክላስተር, የካፍካ ክላስተር, የጭነት ማመንጫ መሳሪያ, እንዲሁም ፕሮሜቲየስ እና ግራፋና);
  • በተሰበሰቡ የአፈፃፀም አመልካቾች ውስጥ የዘፈቀደ ልዩነቶችን ለማጣራት ለተወሰነ ጊዜ ጭነት ማመንጨት;
  • በተመለከቱት የአፈፃፀም አመልካቾች ላይ በመመርኮዝ የደላላው መሠረተ ልማት እና ውቅር ማስተካከል;
  • የሚፈለገው የካፍካ ክላስተር ፍሰት መጠን እስኪደርስ ድረስ ሂደቱን መድገም። በተመሳሳይ ጊዜ, በቋሚነት የሚባዛ እና በግብአት ውስጥ አነስተኛ ልዩነቶችን ማሳየት አለበት.

የሚቀጥለው ክፍል በሙከራ ክላስተር ማመሳከሪያ ሂደት ወቅት የተከናወኑትን እርምጃዎች ይገልጻል።

መሳሪያዎች

የሚከተሉት መሳሪያዎች የመነሻ መስመር ውቅርን በፍጥነት ለመዘርጋት፣ ሸክሞችን ለማመንጨት እና አፈጻጸምን ለመለካት ጥቅም ላይ ውለዋል፡

  • Banzai ክላውድ ቧንቧ የ EKS ክላስተር ከአማዞን ሐ ፕሮሚትየስ (ካፍካ እና የመሠረተ ልማት መለኪያዎችን ለመሰብሰብ) እና ግራፋና (እነዚህን መለኪያዎች ለማየት). ተጠቅመንበታል። የተቀናጀ в ቧንቧው የፌዴራል ቁጥጥር፣ የተማከለ የምዝግብ ማስታወሻ መሰብሰብ፣ የተጋላጭነት ቅኝት፣ የአደጋ ማገገም፣ የድርጅት ደረጃ ደህንነትን እና ሌሎችንም የሚያቀርቡ አገልግሎቶች።
  • ሳንግሬኔል - የካፍካ ክላስተር ጭነት ለመፈተሽ መሳሪያ.
  • የካፍካ መለኪያዎችን እና መሠረተ ልማትን ለማየት የግራፋና ዳሽቦርዶች፡- ኩበርኔትስ ካፍካ, መስቀለኛ ላኪ.
  • ሱፐርቱብ CLI በኩበርኔትስ ላይ የካፍካ ክላስተር ለማዘጋጀት ቀላሉ መንገድ። የእንስሳት ጥበቃ፣ የካፍካ ኦፕሬተር፣ መልእክተኛ እና ሌሎች ብዙ አካላት ለምርት ዝግጁ የሆነ የካፍካ ክላስተር በኩበርኔትስ ላይ እንዲሰሩ ተጭነዋል እና በትክክል ተዋቅረዋል።
    • ለመጫን ሱፐር ቱቦዎች CLI የተሰጠውን መመሪያ ተጠቀም እዚህ.

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

EKS ዘለላ

ከልዩ የሰራተኛ አንጓዎች ጋር የ EKS ክላስተር ያዘጋጁ c5.4x ትልቅ በተለያዩ የመገኛ ዞኖች ውስጥ ለፖድ ከካፍካ ደላላዎች ጋር እንዲሁም ለጭነት ጀነሬተር እና ለክትትል መሠረተ ልማት የተሰጡ አንጓዎች።

banzai cluster create -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/cluster_eks_202001.json

አንዴ የEKS ክላስተር ስራ ላይ ከዋለ፣ተዋሃደውን አንቃ የክትትል አገልግሎት - ፕሮሜቴየስን እና ግራፋናንን ወደ ዘለላ ታስገባለች።

የካፍካ ስርዓት አካላት

ሱፐር ቲዩብ CLIን በመጠቀም የካፍካ ሲስተም ክፍሎችን (Zookeeper, kafka-operator) በ EKS ውስጥ ይጫኑ፡

supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>

የካፍካ ክላስተር

በነባሪ፣ EKS የEBS ጥራዞች ዓይነት ይጠቀማል gp2, ስለዚህ በጥራዞች መሰረት የተለየ የማከማቻ ክፍል መፍጠር ያስፈልግዎታል io1 ለካፍካ ክላስተር፡

kubectl create -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
  type: io1
  iopsPerGB: "50"
  fsType: ext4
volumeBindingMode: WaitForFirstConsumer
EOF

ለደላሎች መለኪያውን ያዘጋጁ min.insync.replicas=3 እና የደላላ ፓዶችን በመስቀለኛ መንገድ ላይ በሦስት የተለያዩ ተደራሽ ዞኖች ያሰማሩ፡

supertubes cluster create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/kafka_202001_3brokers.yaml --wait --timeout 600

ርዕሶች

ሶስት የጭነት ጀነሬተር ምሳሌዎችን በትይዩ ሄድን። እያንዳንዳቸው ወደ ራሳቸው ርዕስ ይጽፋሉ ፣ ማለትም ፣ በአጠቃላይ ሶስት ርዕሶች ያስፈልጉናል ።

supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
  name: perftest1
spec:
  name: perftest1
  partitions: 12
  replicationFactor: 3
  retention.ms: '28800000'
  cleanup.policy: delete
EOF

supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
    name: perftest2
spec:
  name: perftest2
  partitions: 12
  replicationFactor: 3
  retention.ms: '28800000'
  cleanup.policy: delete
EOF

supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
  name: perftest3
spec:
  name: perftest3
  partitions: 12
  replicationFactor: 3
  retention.ms: '28800000'
  cleanup.policy: delete
EOF

ለእያንዳንዱ ርዕስ፣ የማባዛት ሁኔታው ​​3 ነው—በጣም ለሚገኙ የምርት ስርዓቶች ዝቅተኛው የሚመከር እሴት።

የመጫኛ ትውልድ መሣሪያ

የጭነት ማመንጫውን ሶስት ቅጂዎች አስነሳን (እያንዳንዱ በተለየ ርዕስ ውስጥ ጽፏል). ለጭነት ጀነሬተር ፓድዎች ለእነሱ በተመደቡት አንጓዎች ላይ ብቻ እንዲታቀዱ የመስቀለኛ ክፍልን ግንኙነት ማዘጋጀት ያስፈልግዎታል ።

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: loadtest
  name: perf-load1
  namespace: kafka
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: loadtest
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: loadtest
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: nodepool.banzaicloud.io/name
                operator: In
                values:
                - loadgen
      containers:
      - args:
        - -brokers=kafka-0:29092,kafka-1:29092,kafka-2:29092,kafka-3:29092
        - -topic=perftest1
        - -required-acks=all
        - -message-size=512
        - -workers=20
        image: banzaicloud/perfload:0.1.0-blog
        imagePullPolicy: Always
        name: sangrenel
        resources:
          limits:
            cpu: 2
            memory: 1Gi
          requests:
            cpu: 2
            memory: 1Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

ጥቂት ነጥቦችን ልብ ይበሉ:

  • ሎድ ጄኔሬተሩ 512 ባይት ርዝማኔ ያላቸውን መልዕክቶች ያመነጫል እና ለካፍካ በ500 መልእክቶች ያሳትማል።
  • ክርክር በመጠቀም -required-acks=all ሁሉም የተመሳሰለው የመልእክቱ ቅጂዎች በካፍካ ደላሎች ሲደርሱ እና ሲረጋገጥ ህትመቱ ስኬታማ እንደሆነ ይቆጠራል። ይህ ማለት በቤንችማርክ የምንለካው መሪዎች መልእክት የሚቀበሉበትን ፍጥነት ብቻ ሳይሆን ተከታዮቻቸውም መልእክት የሚደግሙ መሆናቸውን ነው። የዚህ ፈተና ዓላማ የሸማቾችን የንባብ ፍጥነት ለመገምገም አይደለም (ሸማቾች) በቅርብ ጊዜ በስርዓተ ክወናው ገጽ መሸጎጫ ውስጥ የሚቀሩ መልእክቶች እና በዲስክ ላይ ከተከማቹ የመልእክቶች የንባብ ፍጥነት ጋር ማነፃፀር።
  • የጭነት ጀነሬተር 20 ሰራተኞችን በትይዩ ይሰራል (-workers=20). እያንዳንዱ ሰራተኛ የሰራተኛውን ከካፍካ ክላስተር ጋር ያለውን ግንኙነት የሚጋሩ 5 አምራቾች አሉት። በውጤቱም, እያንዳንዱ ጄነሬተር 100 አምራቾች አሉት, እና ሁሉም ለካፍካ ክላስተር መልእክት ይልካሉ.

የክላስተርን ጤና መከታተል

በካፍካ ክላስተር ጭነት ሙከራ ወቅት ምንም አይነት ፖድ ዳግም ማስጀመር፣ ከስምረት ውጪ የሆኑ ቅጂዎች እና ከፍተኛ መጠን በትንሹ መለዋወጥ አለመኖሩን ለማረጋገጥ ጤንነቱን ተከታተልን።

  • የጭነት ጀነሬተር ስለታተሙት መልዕክቶች ብዛት እና ሾለ ስህተቱ መጠን መደበኛ ስታቲስቲክስን ይጽፋል። የስህተት መጠኑ ተመሳሳይ መሆን አለበት። 0,00%.
  • የሽርሽር መቆጣጠሪያበካፍካ ኦፕሬተር የተሰማራው የክላስተርን ሁኔታ የምንቆጣጠርበት ዳሽቦርድ ያቀርባል። ይህንን ፓነል ለማየት የሚከተሉትን ያድርጉ
    supertubes cluster cruisecontrol show -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file>
  • የ ISR ደረጃ (የ"በማመሳሰል" ቅጂዎች ቁጥር) መቀነስ እና መስፋፋት ከ0 ጋር እኩል ነው።

የመለኪያ ውጤቶች

3 ደላላዎች, የመልዕክት መጠን - 512 ባይት

ክፍልፋዮች በሦስት ደላሎች እኩል ተከፋፍለው፣ አፈጻጸም ማሳካት ችለናል። ~ 500 ሜባ / ሰ (በሴኮንድ በግምት 990 ሺህ መልእክቶች):

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

የጄቪኤም ቨርቹዋል ማሽን የማህደረ ትውስታ ፍጆታ ከ2 ጂቢ አልበለጠም።

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

የዲስክ ፍሰት ደላሎቹ በሚሰሩባቸው ሶስቱም አጋጣሚዎች ከፍተኛውን የI/O መስቀለኛ መንገድ መጠን ላይ ደርሷል፡-

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በአንጓዎች የማህደረ ትውስታ አጠቃቀም ላይ ካለው መረጃ የስርዓት ማቋቋሚያ እና መሸጎጫ ~ 10-15 ጂቢ እንደወሰደ ይከተላል።

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

3 ደላላዎች, የመልዕክት መጠን - 100 ባይት

የመልዕክቱ መጠን እየቀነሰ ሲሄድ የግብአት መጠን ከ15-20% ይቀንሳል፡ እያንዳንዱን መልእክት ለማስኬድ የሚጠፋው ጊዜ ይጎዳዋል። በተጨማሪም የማቀነባበሪያው ጭነት በእጥፍ ጨምሯል ማለት ይቻላል።

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

የደላሎች ኖዶች አሁንም ጥቅም ላይ ያልዋሉ ኮሮች ስላሏቸው፣ የካፍ ውቅረትን በመቀየር አፈጻጸሙን ማሻሻል ይቻላል። ይህ ቀላል ስራ አይደለም, ስለዚህ የውጤት መጠንን ለመጨመር ከትላልቅ መልዕክቶች ጋር መስራት የተሻለ ነው.

4 ደላላዎች, የመልዕክት መጠን - 512 ባይት

በቀላሉ አዳዲስ ደላሎችን በመጨመር እና የክፍፍልን ሚዛን በመጠበቅ የካፍ ክላስተርን አፈፃፀም በቀላሉ ማሳደግ ይችላሉ (ይህም ጭነቱ በደላሎች መካከል እኩል መከፋፈሉን ያረጋግጣል)። በእኛ ሁኔታ፣ ደላላ ከጨመርን በኋላ፣ የክላስተር ፍሰት ወደ ላይ ጨምሯል። ~ 580 ሜባ / ሰ (~ 1,1 ሚሊዮን መልዕክቶች በሰከንድ). እድገቱ ከሚጠበቀው በታች ሆኖ ተገኝቷል፡ ይህ በዋነኝነት የሚገለፀው በክፍሎች አለመመጣጠን ነው (ሁሉም ደላላዎች በችሎታቸው ጫፍ ላይ የሚሰሩ አይደሉም)።

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

የJVM ማሽን የማህደረ ትውስታ ፍጆታ ከ2 ጂቢ በታች ቀርቷል፡

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

የደላሎች አሽከርካሪዎች ሥራ በክፍሎች አለመመጣጠን ተጎድቷል፡-

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

በኩበርኔትስ ውስጥ ለካፍካ ክላስተር ተገቢውን መጠን ይወስኑ

ግኝቶች

ከዚህ በላይ የቀረበው ተደጋጋሚ አቀራረብ በመቶዎች የሚቆጠሩ ሸማቾችን፣ መልሶ መከፋፈልን፣ ማሻሻያዎችን፣ ፖድ ድጋሚ ማስጀመርን ወዘተ የሚያካትቱ ይበልጥ ውስብስብ ሁኔታዎችን ለመሸፈን ሊሰፋ ይችላል። ይህ ሁሉ የካፍካ ክላስተር አቅም በተለያዩ ሁኔታዎች ውስጥ ያለውን ገደብ ለመገምገም, በስራው ላይ ያሉትን ማነቆዎች ለመለየት እና እነሱን ለመዋጋት መንገዶችን ለመፈለግ ያስችለናል.

በፍጥነት እና በቀላሉ ክላስተር ለማሰማራት፣ ለማዋቀር፣ ደላሎችን እና ርዕሶችን ለመጨመር/ለማስወገድ፣ ለማንቂያዎች ምላሽ ለመስጠት እና በአጠቃላይ ካፍካ በኩበርኔትስ ላይ በትክክል እንደሚሰራ ለማረጋገጥ ሱፐር ቲዩብ አዘጋጅተናል። ግባችን በዋና ስራው ላይ እንዲያተኩሩ መርዳት ነው ("ማመንጨት" እና "የካፍ መልዕክቶችን መብላት") እና ሁሉንም ከባድ ስራ ለሱፐርቱብ እና ለካፍ ኦፕሬተር መተው ነው።

ለባንዛይ ክላውድ ቴክኖሎጂዎች እና የክፍት ምንጭ ፕሮጀክቶች ፍላጎት ካሎት ለኩባንያው በ ላይ ይመዝገቡ የፊልሙ, LinkedIn ወይም Twitter.

PS ከተርጓሚ

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

አስተያየት ያክሉ