የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ

የድር መተግበሪያዎች አሁን በሁሉም ቦታ ጥቅም ላይ ይውላሉ እና ከሁሉም የትራንስፖርት ፕሮቶኮሎች መካከል ኤችቲቲፒ የአንበሳውን ድርሻ ይይዛል። የዌብ አፕሊኬሽን እድገትን ልዩነት ሲያጠና፣ አብዛኛው ሰው እነዚህ አፕሊኬሽኖች ለሚሰሩበት ኦፕሬቲንግ ሲስተም በጣም ትንሽ ትኩረት ይሰጣሉ። የልማት መለያየት (ዴቭ) እና ኦፕሬሽኖች (ኦፕስ) ሁኔታውን የበለጠ ያባብሰዋል. ነገር ግን በዴቭኦፕስ ባህል መጨመር ገንቢዎች አፕሊኬሽኖቻቸውን በደመና ውስጥ የማስኬድ ሃላፊነት እየሆኑ ነው፣ ስለዚህ ከስርዓተ ክወናው ጀርባ ጋር በደንብ እንዲተዋወቁ በጣም ጠቃሚ ነው። ይህ በተለይ በሺዎች ወይም በአስር ሺዎች ለሚቆጠሩ በአንድ ጊዜ ግንኙነቶች ስርዓትን ለመዘርጋት እየሞከሩ ከሆነ በጣም ጠቃሚ ነው.

በድር አገልግሎቶች ውስጥ ያሉ ገደቦች ከሌሎች መተግበሪያዎች ጋር በጣም ተመሳሳይ ናቸው። የሎድ ሚዛን ወይም ዳታቤዝ ሰርቨሮች፣ እነዚህ ሁሉ መተግበሪያዎች ከፍተኛ አፈጻጸም ባለው አካባቢ ውስጥ ተመሳሳይ ችግሮች አሏቸው። እነዚህን መሰረታዊ ውሱንነቶች እና በአጠቃላይ እነሱን እንዴት ማሸነፍ እንደሚቻል መረዳት የድር መተግበሪያዎችዎን አፈፃፀም እና ልኬት ለመገምገም ይረዳዎታል።

ይህን ተከታታይ መጣጥፎችን የምጽፈው በደንብ መረጃ ያላቸው የሲስተም አርክቴክቶች ለመሆን ለሚፈልጉ ወጣት ገንቢዎች ለሚቀርቡላቸው ጥያቄዎች ምላሽ ነው። በስርዓተ ክወናው ደረጃ እንዴት እንደሚሰሩ ወደ መሰረታዊ ነገሮች ሳይገቡ የሊኑክስ አፕሊኬሽን ማሻሻያ ዘዴዎችን በግልፅ መረዳት አይቻልም። ብዙ አይነት አፕሊኬሽኖች ቢኖሩም በዚህ ተከታታይ ክፍል እንደ አሳሽ ወይም የጽሑፍ አርታዒ ካሉ የዴስክቶፕ አፕሊኬሽኖች ይልቅ ዌብ ላይ የተመሰረቱ አፕሊኬሽኖችን ማሰስ እፈልጋለሁ። ይህ ቁሳቁስ ሊኑክስ ወይም ዩኒክስ ፕሮግራሞች እንዴት እንደሚሠሩ እና ለከፍተኛ አፈፃፀም እንዴት እንደሚዋቀሩ ለመረዳት ለሚፈልጉ ገንቢዎች እና አርክቴክቶች የታሰበ ነው።

ሊኑክስ ነው። የአገልጋይ ክፍል ኦፕሬቲንግ ሲስተም፣ እና አብዛኛውን ጊዜ የእርስዎ መተግበሪያዎች በዚህ OS ላይ ይሰራሉ። ምንም እንኳን "ሊኑክስ" የምለው ቢሆንም፣ ብዙ ጊዜ ሁሉንም ዩኒክስ መሰል ኦፕሬቲንግ ሲስተሞችን በአጠቃላይ ማለቴ እንደሆነ በእርግጠኝነት መገመት ይችላሉ። ሆኖም፣ ተጓዳኝ ኮድ በሌሎች ስርዓቶች ላይ አልሞከርኩትም። ስለዚህ፣ የFreeBSD ወይም OpenBSD ፍላጎት ካለህ ውጤቶችህ ሊለያዩ ይችላሉ። ሊኑክስ-ተኮር የሆነ ነገር ስሞክር እጠቁማለሁ።

ይህን እውቀት ተጠቅመው መተግበሪያን ከባዶ መገንባት ቢችሉም እና ፍፁም የተመቻቸ ይሆናል፣ ያንን ባታደርጉት ጥሩ ነው። ለድርጅትዎ የንግድ ማመልከቻ በC ወይም C++ ላይ አዲስ የድር አገልጋይ ከጻፉ ይህ ምናልባት በስራዎ የመጨረሻ ቀንዎ ሊሆን ይችላል። ነገር ግን የእነዚህን አፕሊኬሽኖች አወቃቀር ማወቅ አሁን ያሉትን ፕሮግራሞች ለመምረጥ ይረዳል. በሂደት ላይ የተመሰረቱ ስርዓቶችን በክር ላይ ከተመሰረቱ ስርዓቶች እና እንዲሁም በክስተት ላይ ከተመሰረቱት ጋር ማወዳደር ይችላሉ። ለምን Nginx ከ Apache httpd የተሻለ እንደሚሰራ፣ ለምን በቶርናዶ ላይ የተመሰረተ ፓይዘን አፕሊኬሽን በጃንጎ ላይ ከተመሠረተ የፓይዘን አፕሊኬሽን ጋር ሲወዳደር ብዙ ተጠቃሚዎችን እንደሚያገለግል ይረዱታል እና ያደንቃሉ።

ዜሮ ኤችቲቲፒዲ፡ የመማሪያ መሳሪያ

ዜሮ ኤችቲቲፒ á‰  C እንደ ማስተማሪያ መሳሪያ ከባዶ የፃፍኩት የድር አገልጋይ ነው። ወደ Redis መዳረሻን ጨምሮ ምንም ውጫዊ ጥገኛዎች የሉትም። የራሳችንን የ Redis ሂደቶችን እናካሂዳለን። ለበለጠ ዝርዝር ከዚህ በታች ይመልከቱ።

በንድፈ ሃሳቡ ላይ በስፋት መወያየት ብንችልም ኮድ ከመፃፍ፣ ከማስኬድ እና ሁሉንም የአገልጋይ አርክቴክቸር እርስ በእርስ ከማወዳደር የተሻለ ነገር የለም። ይህ በጣም ግልጽ የሆነው ዘዴ ነው. ስለዚህ፣ እያንዳንዱን ሞዴል በመጠቀም ቀላል የዜሮኤችቲቲፒd ድር አገልጋይ እንጽፋለን፡ በሂደት ላይ የተመሰረተ፣ በክር ላይ የተመሰረተ እና በክስተት ላይ የተመሰረተ። እነዚህን አገልጋዮች እያንዳንዳቸውን እንመርምር እና እንዴት እርስ በርስ ሲነፃፀሩ እንዴት እንደሚሰሩ እንይ። ዜሮ ኤችቲቲፒድ በአንድ የ C ፋይል ውስጥ ነው የሚተገበረው በክስተቱ ላይ የተመሰረተ አገልጋይ ያካትታል uthash፣ በአንድ ራስጌ ፋይል ውስጥ የሚመጣ ታላቅ የሃሽ ሠንጠረዥ ትግበራ። በሌሎች ሁኔታዎች, ፕሮጀክቱን እንዳያወሳስብ, ምንም ጥገኛዎች የሉም.

በኮዱ ውስጥ እርስዎ እንዲረዱዎት ብዙ አስተያየቶች አሉ። በጥቂት የኮድ መስመሮች ውስጥ ቀላል የድር አገልጋይ በመሆን፣ ዜሮኤችቲቲፒድ ለድር ልማት አነስተኛ ማዕቀፍ ነው። የተገደበ ተግባር አለው፣ ነገር ግን የማይንቀሳቀሱ ፋይሎችን እና በጣም ቀላል "ተለዋዋጭ" ገጾችን ማገልገል ይችላል። ZeroHTTPd ከፍተኛ አፈጻጸም ያላቸውን የሊኑክስ አፕሊኬሽኖች እንዴት መፍጠር እንደሚቻል ለመማር ጥሩ ነው ማለት አለብኝ። በጥቅሉ፣ አብዛኛዎቹ የድር አገልግሎቶች ጥያቄዎችን ይጠብቃሉ፣ ይፈትሹዋቸው እና ያስኬዷቸዋል። ZeroHTTPd የሚያደርገው ልክ ይሄ ነው። ይህ የመማሪያ መሳሪያ እንጂ ምርት አይደለም። በስህተት አያያዝ ላይ ጥሩ አይደለም እና ምርጥ የደህንነት ልምዶችን መኩራራት አይቀርም (አዎ አዎ፣ ተጠቀምኩኝ) strcpy) ወይም የC ቋንቋ ብልህ ዘዴዎች ግን ሥራውን በጥሩ ሁኔታ እንደሚሠራ ተስፋ አደርጋለሁ።

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ
ዜሮ ኤችቲቲፒd መነሻ ገጽ። ምስሎችን ጨምሮ የተለያዩ የፋይል ዓይነቶችን ማውጣት ይችላል

የእንግዳ መጽሐፍ ማመልከቻ

ዘመናዊ የድረ-ገጽ አፕሊኬሽኖች በአብዛኛው በስታቲክ ፋይሎች ብቻ የተገደቡ አይደሉም። ከተለያዩ የመረጃ ቋቶች፣ መሸጎጫዎች፣ ወዘተ ጋር የተወሳሰቡ ግንኙነቶች አሏቸው።ስለዚህ ጎብኚዎች በስማቸው የሚገቡትን የሚወጡበት “የእንግዳ መጽሐፍ” የተሰኘ ቀላል የድር መተግበሪያ እንፈጥራለን። የእንግዳ መፅሃፉ ቀደም ብሎ የተለቀቁ ግቤቶችን ያከማቻል። ከገጹ ግርጌ ላይ የጎብኚ ቆጣሪም አለ።

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ
የድር መተግበሪያ "የእንግዳ መጽሐፍ" ZeroHTTPd

የጎብኚዎች ቆጣሪ እና የእንግዳ መጽሐፍ ግቤቶች በሬዲስ ውስጥ ተቀምጠዋል። ከሬዲስ ጋር ለሚደረጉ ግንኙነቶች የራሳቸው ሂደቶች ይተገበራሉ ፣ እነሱ በውጫዊ ቤተ-መጽሐፍት ላይ የተመኩ አይደሉም። በይፋ የሚገኙ እና በደንብ የተሞከሩ መፍትሄዎች ሲኖሩ የሆምብሬው ኮድን ለመልቀቅ ትልቅ አድናቂ አይደለሁም። ነገር ግን የ ZeroHTTPd አላማ የሊኑክስን አፈፃፀም እና የውጭ አገልግሎቶችን ማግኘትን ማጥናት ሲሆን የኤችቲቲፒ ጥያቄዎችን ማገልገል ግን ከፍተኛ የአፈፃፀም ተፅእኖ አለው። በእያንዳንዱ የአገልጋይ አርክቴክቸር ውስጥ ከRedis ጋር ግንኙነቶችን ሙሉ በሙሉ መቆጣጠር አለብን። በአንዳንድ አርክቴክቸር ጥሪዎችን ማገድን እንጠቀማለን፣ሌሎች ደግሞ ክስተትን መሰረት ያደረጉ ሂደቶችን እንጠቀማለን። ውጫዊ የRedis ደንበኛ ቤተ-መጽሐፍት መጠቀም ይህንን ቁጥጥር አያቀርብም። በተጨማሪም፣ ትንሹ የሬዲስ ደንበኞቻችን ጥቂት ተግባራትን ብቻ ያከናውናሉ (ቁልፉን ማግኘት፣ ማቀናበር እና መጨመር፣ ወደ ድርድር ማግኘት እና ማከል)። በተጨማሪም የሬዲስ ፕሮቶኮል እጅግ በጣም የሚያምር እና ቀላል ነው። እሱን ልዩ ማስተማር እንኳን አያስፈልግዎትም። ፕሮቶኮሉ ሁሉንም ስራዎች ወደ መቶ በሚጠጉ የኮድ መስመሮች ውስጥ መስራቱ ምን ያህል በትክክል እንደታሰበ ያሳያል.

የሚከተለው ምስል ደንበኛው (አሳሽ) ሲጠይቅ ማመልከቻው ምን እንደሚሰራ ያሳያል /guestbookURL.

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ
የእንግዳ መጽሐፍ ማመልከቻ እንዴት እንደሚሰራ

የእንግዳ መጽሃፍ ገጽ መሰጠት ሲያስፈልግ አብነቱን ወደ ማህደረ ትውስታ ለማንበብ ወደ ፋይል ስርዓቱ አንድ ጥሪ እና ሶስት የአውታረ መረብ ጥሪዎች ወደ Redis። የአብነት ፋይሉ ለገጹ አብዛኛው የኤችቲኤምኤል ይዘት ከላይ ባለው የቅጽበታዊ ገጽ እይታ ውስጥ ይዟል። ለይዘቱ ተለዋዋጭ ክፍል ልዩ ቦታ ያዥዎችም አሉ፡ ልጥፎች እና የጎብኝ ቆጣሪ። ከሬዲስ እንቀበላለን, ወደ ገጹ ውስጥ አስገባን እና ለደንበኛው ሙሉ ለሙሉ የተሰራ ይዘት እናቀርባለን. ሦስተኛው የRedis ጥሪ ማስቀረት ይቻላል ምክንያቱም Redis ሲጨምር አዲሱን ቁልፍ እሴት ስለሚመልስ። ነገር ግን፣ ያልተመሳሰለ ክስተት ላይ የተመሰረተ አርክቴክቸር ላለው አገልጋያችን፣ ብዙ የአውታረ መረብ ጥሪዎች ለመማር ዓላማዎች ጥሩ ፈተና ናቸው። ስለዚህ የጎብኝዎች ቁጥር የRedis መመለሻ ዋጋን እናስወግዳለን እና በተለየ ጥሪ እንጠይቀዋለን።

የአገልጋይ አርክቴክቸር ZeroHTTPd

ሰባት የ ZeroHTTPd ስሪቶችን በተመሳሳይ ተግባር ግን የተለያዩ አርክቴክቸር እየገነባን ነው።

  • ተደጋጋሚ
  • ሹካ አገልጋይ (በጥያቄ የአንድ ልጅ ሂደት)
  • ቅድመ-ፎርክ አገልጋይ (የሂደቶችን ቅድመ-መንኮራኩር)
  • የማስፈጸሚያ ክሮች ያለው አገልጋይ (በጥያቄ አንድ ክር)
  • ቅድመ-ክር ፈጠራ ያለው አገልጋይ
  • በሥነ ሕንፃ ላይ የተመሠረተ poll()
  • በሥነ ሕንፃ ላይ የተመሠረተ epoll

የእያንዳንዱን አርክቴክቸር አፈጻጸም የምንለካው አገልጋዩን በ HTTP ጥያቄዎች በመጫን ነው። ነገር ግን በጣም ትይዩ የሆኑ አርክቴክቶችን ሲያወዳድሩ የጥያቄዎች ብዛት ይጨምራል። ሶስት ጊዜ እንፈትሻለን እና አማካዩን እናሰላለን.

የሙከራ ዘዴ

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ
የዜሮ ኤችቲቲፒd ጭነት ሙከራ ማዋቀር

ሙከራዎችን በሚያካሂዱበት ጊዜ ሁሉም አካላት በአንድ ማሽን ላይ እንዳይሰሩ አስፈላጊ ነው. በዚህ አጋጣሚ፣ አካላት ለሲፒዩ ሲወዳደሩ ስርዓተ ክወናው ተጨማሪ የመርሃግብር ወጪን ያስከትላል። የስርዓተ ክወናውን ከእያንዳንዱ ከተመረጡት አገልጋይ አርክቴክቸር በላይ መለካት የዚህ መልመጃ በጣም አስፈላጊ ከሆኑ ግቦች ውስጥ አንዱ ነው። ተጨማሪ ተለዋዋጮችን ማከል ለሂደቱ ጎጂ ይሆናል. ስለዚህ, ከላይ በስዕሉ ላይ ያለው ቅንብር በተሻለ ሁኔታ ይሰራል.

እያንዳንዳቸው እነዚህ አገልጋዮች ምን ያደርጋሉ?

  • load.unixism.net፡ የምንሮጥበት ቦታ ነው። ab, Apache Benchmark utility. የአገልጋያችንን አርክቴክቸር ለመፈተሽ የሚያስፈልገውን ሸክም ያመነጫል።
  • nginx.unixism.net: አንዳንድ ጊዜ ከአንድ በላይ የአገልጋይ ፕሮግራምን ማሄድ እንፈልጋለን. ይህንን ለማድረግ, ከተገቢው መቼቶች ጋር የ Nginx አገልጋይ እንደ ጭነት ሚዛን ይሠራል ab ወደ አገልጋያችን ሂደቶች.
  • zerohttpd.unixism.net፡ እዚህ የአገልጋይ ፕሮግራሞቻችንን በሰባት የተለያዩ አርክቴክቸር አንድ በአንድ እንሰራለን።
  • redis.unixism.net፡ ይህ አገልጋይ ሬዲስ ዴሞንን ያስኬዳል፣ የእንግዶች ደብተር ግቤቶች እና የጎብኚ ቆጣሪዎች የሚቀመጡበት።

ሁሉም አገልጋዮች በአንድ ፕሮሰሰር ኮር ላይ ይሰራሉ። ሃሳቡ የእያንዳንዱን ስነ-ህንፃ ከፍተኛውን አፈፃፀም መገምገም ነው. ሁሉም የአገልጋይ ፕሮግራሞች በአንድ ሃርድዌር ላይ ስለሚሞከሩ፣ ይህ ለማነፃፀር መነሻ መስመር ነው። የእኔ የሙከራ ማዋቀር ከዲጂታል ውቅያኖስ የተከራዩ ምናባዊ አገልጋዮችን ያካትታል።

ምን እየለካን ነው?

የተለያዩ አመልካቾችን መለካት ይችላሉ. በተለያየ የትይዩ ደረጃ ላይ ያሉ አገልጋዮቹን ጥያቄዎችን በመጫን የእያንዳንዱን አርክቴክቸር አፈጻጸም እንገመግማለን።

የሙከራ ውጤቶች

የሚከተለው ገበታ የአገልጋዮችን አፈጻጸም በተለያዩ አርክቴክቸር በተለያየ ደረጃ ትይዩ ያሳያል። y-ዘንግ በሴኮንድ የጥያቄዎች ብዛት ነው, የ x-ዘንግ ትይዩ ግንኙነቶች ነው.

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ

የሊኑክስ አውታረ መረብ መተግበሪያ አፈጻጸም። መግቢያ

ከታች ውጤቱን የያዘ ሰንጠረዥ ነው.

ጥያቄዎች በሰከንድ

ተመሳሳይነት
ተደጋጋሚ
ሹካ
ቅድመ-ሹካ
በዥረት መልቀቅ
ቅድመ-ዥረት
የሕዝብ አስተያየት መስጫ
epoll

20
7
112
2100
1800
2250
1900
2050

50
7
190
2200
1700
2200
2000
2000

100
7
245
2200
1700
2200
2150
2100

200
7
330
2300
1750
2300
2200
2100

300
-
380
2200
1800
2400
2250
2150

400
-
410
2200
1750
2600
2000
2000

500
-
440
2300
1850
2700
1900
2212

600
-
460
2400
1800
2500
1700
2519

700
-
460
2400
1600
2490
1550
2607

800
-
460
2400
1600
2540
1400
2553

900
-
460
2300
1600
2472
1200
2567

1000
-
475
2300
1700
2485
1150
2439

1500
-
490
2400
1550
2620
900
2479

2000
-
350
2400
1400
2396
550
2200

2500
-
280
2100
1300
2453
490
2262

3000
-
280
1900
1250
2502
ትልቅ ስርጭት
2138

5000
-
ትልቅ ስርጭት
1600
1100
2519
-
2235

8000
-
-
1200
ትልቅ ስርጭት
2451
-
2100

10
-
-
ትልቅ ስርጭት
-
2200
-
2200

11
-
-
-
-
2200
-
2122

12
-
-
-
-
970
-
1958

13
-
-
-
-
730
-
1897

14
-
-
-
-
590
-
1466

15
-
-
-
-
532
-
1281

በግራፍ እና በጠረጴዛው ላይ ከ 8000 በላይ በአንድ ጊዜ ጥያቄዎች ሁለት ተጫዋቾች ብቻ ይቀራሉ-ቅድመ-ፎርክ እና ኢፖል። ጭነቱ እየጨመረ ሲሄድ በድምጽ መስጫ ላይ የተመሰረተ አገልጋይ ከዥረት መልቀቅ የባሰ ይሰራል። ክር-ቅድመ-ፍጥረት አርክቴክቸር የሊኑክስ ከርነል ብዙ ቁጥር ያላቸውን ክሮች እንዴት በጥሩ ሁኔታ እንደሚይዝ የሚያሳይ ለፍጻሜ ብቁ ተወዳዳሪ ነው።

ዜሮ ኤችቲቲፒd የምንጭ ኮድ

ዜሮ ኤችቲቲፒd የምንጭ ኮድ እዚህ. ለእያንዳንዱ አርክቴክቸር የተለየ ማውጫ አለ።

ዜሮ ኤችቲቲፒድ │ ├── 01_iterative │ ├── ዋና.c ├── 02_ፎርኪንግ │ 03_ ክር │ ├── main.c ├── 04_prethreading │ ├── main.c ├── 05_poll │ ├── ዋና.c ├── ኢንዴክስ .html │ └── tux png └── አብነቶች └── የእንግዳ መጽሐፍ └── index.html

ለሁሉም አርክቴክቸር ከሰባት ማውጫዎች በተጨማሪ፣ በከፍተኛ ደረጃ ማውጫ ውስጥ ሁለት ተጨማሪ አሉ፡ ይፋዊ እና አብነቶች። የመጀመሪያው የ index.html ፋይል እና ምስሉን ከመጀመሪያው ቅጽበታዊ ገጽ እይታ ይዟል. ሌሎች ፋይሎችን እና ማህደሮችን እዚያ ማስቀመጥ ትችላለህ፣ እና ዜሮኤችቲቲፒድ እነዚያን የማይንቀሳቀሱ ፋይሎች ያለምንም ችግር ማገልገል አለበት። በአሳሹ ውስጥ ያለው መንገድ በአደባባይ አቃፊ ውስጥ ካለው ዱካ ጋር የሚዛመድ ከሆነ፣ ዜሮኤችቲቲፒd በዚህ ማውጫ ውስጥ የindex.html ፋይልን ይፈልጋል። ለእንግዳ መጽሐፍ ይዘቱ በተለዋዋጭነት የመነጨ ነው። መነሻ ገጽ ብቻ ነው ያለው እና ይዘቱ በ"Templates/Guestbook/index.html" ፋይል ላይ የተመሰረተ ነው። ZeroHTTPd በቀላሉ ተለዋዋጭ ገጾችን ማራዘሚያ ያክላል። ሀሳቡ ተጠቃሚዎች ወደዚህ ማውጫ አብነቶችን ማከል እና እንደ አስፈላጊነቱ ዜሮኤችቲፒዲ ማራዘም ይችላሉ።

ሁሉንም ሰባት አገልጋዮች ለመገንባት፣ አሂድ make all ከከፍተኛ ደረጃ ማውጫ - እና ሁሉም ግንባታዎች በዚህ ማውጫ ውስጥ ይታያሉ። ሊተገበሩ የሚችሉ ፋይሎች ይፋዊ እና የአብነት ማውጫዎችን በወጡበት ማውጫ ውስጥ ይፈልጉ።

ሊኑክስ ኤፒአይ

በዚህ ተከታታይ መጣጥፍ ውስጥ ያለውን መረጃ ለመረዳት የሊኑክስን ኤፒአይ ጠንቅቆ ማወቅ አያስፈልግም። ይሁን እንጂ በዚህ ርዕስ ላይ የበለጠ ለማንበብ እመክራለሁ፤ በበይነመረብ ላይ ብዙ የማመሳከሪያ ምንጮች አሉ። ምንም እንኳን በበርካታ የሊኑክስ ኤፒአይዎች ምድቦች ላይ ብንነካም ትኩረታችን በዋናነት በሂደቶች፣ ክሮች፣ ዝግጅቶች እና የአውታረ መረብ ቁልል ላይ ይሆናል። ስለ ሊኑክስ ኤፒአይ ከመጽሃፍቶች እና መጣጥፎች በተጨማሪ፣ ለስርዓት ጥሪዎች እና ለቤተ-መጻህፍት ተግባራት መና እንዲያነቡ እመክራለሁ።

አፈጻጸም እና መጠነ ሰፊነት

ስለ አፈጻጸም እና መስፋፋት አንድ ማስታወሻ። በንድፈ ሀሳብ, በመካከላቸው ምንም ግንኙነት የለም. በጥቂት ሚሊሰከንዶች የምላሽ ጊዜ ያለው በጥሩ ሁኔታ የሚሰራ የድር አገልግሎት ሊኖርዎት ይችላል ነገርግን በፍጹም አይለካም። ልክ እንደዚሁ፣ ምላሽ ለመስጠት ጥቂት ሰከንዶች የሚወስድ ደካማ አፈጻጸም ያለው የድር መተግበሪያ ሊኖር ይችላል፣ ነገር ግን በአስር ሺዎች የሚቆጠሩ ተጠቃሚዎችን ለማስተናገድ በአስር ይመዝናል። ይሁን እንጂ የከፍተኛ አፈፃፀም እና የመለጠጥ ችሎታ ጥምረት በጣም ኃይለኛ ጥምረት ነው. ከፍተኛ አፈጻጸም ያላቸው አፕሊኬሽኖች በአጠቃላይ ሃብቶችን በቁጠባ ይጠቀማሉ እና ስለዚህ በአገልጋዩ ላይ ተጨማሪ ተጠቃሚዎችን በብቃት ያገለግላሉ ይህም ወጪዎችን ይቀንሳል።

ሲፒዩ እና I/O ተግባራት

በመጨረሻም ፣ በኮምፒዩተር ውስጥ ሁል ጊዜ ሁለት ሊሆኑ የሚችሉ ተግባራት አሉ-ለአይ/ኦ እና ሲፒዩ። የኢንተርኔት ጥያቄዎችን መቀበል (ኔትወርክ አይ/ኦ)፣ ፋይሎችን ማገልገል (ኔትወርክ እና ዲስክ I/O)፣ ከመረጃ ቋት (ኔትወርክ እና ዲስክ I/O) ጋር መገናኘት ሁሉም የአይ/ኦ እንቅስቃሴዎች ናቸው። አንዳንድ የውሂብ ጎታ መጠይቆች ትንሽ ሲፒዩ የተጠናከሩ ሊሆኑ ይችላሉ (መደርደር፣ አማካይ አንድ ሚሊዮን ውጤቶች፣ ወዘተ)። አብዛኛዎቹ የድር አፕሊኬሽኖች በሚፈቀደው ከፍተኛ I/O የተገደቡ ናቸው፣ እና ፕሮሰሰሩ ብዙ ጊዜ በሙሉ አቅሙ ጥቅም ላይ አይውልም። አንዳንድ የ I/O ተግባር ብዙ ሲፒዩ እየተጠቀመ መሆኑን ሲመለከቱ፣ ምናልባት ደካማ የመተግበሪያ አርክቴክቸር ምልክት ነው። ይህ ማለት የሲፒዩ ሀብቶች በሂደት አስተዳደር እና በዐውደ-ጽሑፍ መቀየር ላይ ይባክናሉ - እና ይህ ሙሉ በሙሉ ጠቃሚ አይደለም. እንደ ምስል ማቀናበር፣ የድምጽ ፋይል መቀየር ወይም የማሽን መማር ያለ ነገር እየሰሩ ከሆነ አፕሊኬሽኑ ኃይለኛ የሲፒዩ ግብዓቶችን ይፈልጋል። ግን ለአብዛኛዎቹ መተግበሪያዎች ይህ አይደለም.

ስለ አገልጋይ አርክቴክቸር የበለጠ ይወቁ

  1. ክፍል አንድ፡ ተደጋጋሚ አርክቴክቸር
  2. ክፍል II. ሹካ አገልጋዮች
  3. ክፍል III. ቅድመ-ፎርክ አገልጋዮች
  4. ክፍል IV. የአፈፃፀም ክሮች ያላቸው አገልጋዮች
  5. ክፍል V. ቅድመ-ክር የተደረጉ አገልጋዮች
  6. ክፍል VI. በፖል ላይ የተመሰረተ አርክቴክቸር
  7. ክፍል VII. epoll ላይ የተመሠረተ አርክቴክቸር

ምንጭ: hab.com

አስተያየት ያክሉ