በስርዓቱ ውስጥ የተመረጠው የጊዜ ምንጭ የአፈፃፀም ተፅእኖ ትንተና

በአሁኑ ጊዜ በሊኑክስ ከርነል ውስጥ BPF ላይ የተመሰረቱ የአፈጻጸም ትንተና መሳሪያዎችን በማዘጋጀት ላይ የሚገኘው የDTrace አዘጋጆች አንዱ የሆነው ብሬንዳን ግሬግ፣ ኔትፍሊክስ ካሳንድራ ዲቢኤምኤስ ከሴንትኦኤስ ወደ ኡቡንቱ ሲሰደድ ያጋጠሙትን የአፈጻጸም ችግሮች በመመርመር ያገኘውን ልምድ ጠቅለል አድርጎ አቅርቦታል። በXen ላይ የተመሰረተ የአማዞን EC2 ደመና። ከስደት በኋላ የሲፒዩ ጭነት በ 30% ጨምሯል እና በፅሁፍ ስራዎች መዘግየቶች በተመሳሳይ መጠን ጨምሯል. እንደ ተለወጠ, የጊዜ መረጃን በከፍተኛ ሁኔታ የሚጠይቁ የመተግበሪያዎች አፈፃፀም በስርዓቱ ውስጥ በተመረጠው ትክክለኛ የጊዜ ምንጭ ላይ የተመሰረተ ነው.

በመጀመሪያ የአፈፃፀም መቀነስ ምክንያቱ ግልጽ አይደለም እና ምርመራው የጀመረው ያለማቋረጥ በመሮጥ ወይም ከጊዜ ወደ ጊዜ እየጨመረ የመጣውን ሀብትን የሚጨምሩ የስርዓት ሂደቶች ከፍተኛ እና ኤክሰኖፕ መገልገያዎችን በመጠቀም ሊከሰቱ የሚችሉትን ተፅእኖ በመከታተል ነው። ነገር ግን ሁሉም ነገር የሀብት ፍጆታ በተለይ በካሳንድራ ዲቢኤምኤስ በጃቫ የተጻፈ መሆኑን አመልክቷል። በ CentOS እና Ubuntu ላይ በትይዩ የሚሰሩትን የሁለት ካሳንድራ ሂደቶችን የመገለጫ መለኪያዎችን በማነፃፀር ፣ተመሳሳይ ጥያቄዎችን በማስኬድ ፣ከጠቅላላው ጊዜ 32% ያህሉ os ::javaTimeMillis() በመደወል ያሳለፈው ስለአሁኑ ጊዜ መረጃ ለማግኘት ይጠቅማል። .

ከዚህ በኋላ ሲስተም.currentTimeMilis() ዘዴ መቶ ሚሊዮን ጊዜ በ loop ተብሎ የሚጠራ ቀላል የጃቫ መተግበሪያ የተጻፈበት ሙከራ ተካሄዷል። አፕሊኬሽኑን ማስኬድ በCentOS ላይ ለመጨረስ 13 ሰከንድ እንደፈጀ ያሳያል፣ እና በኡቡንቱ ላይ 68 ሰከንድ ያህል፣ ማለትም። 5 ጊዜ ቀርፋፋ። ጌትታይም ኦፍዴይ() ተግባርን መቶ ሚሊዮን ጊዜ የሚጠራው ተመሳሳይ ፕሮግራም በሲ ተጽፎ ነበር ነገርግን ሲተገበር ተመሳሳይ ውጤት ተገኝቷል።

የችግሩ ምንጭ የአሁኑን ጊዜ የመመለስ ተግባር መሆኑን ግልጽ ስለነበረ በስርዓቱ ውስጥ የተለያዩ የጊዜ ምንጮችን በሚመርጡበት ጊዜ ትኩረት ወደ ጠቋሚዎች ለውጦች ተለወጠ. በ"/sys/መሳሪያዎች/ሲስተም/የሰዓት ምንጭ/ሰዓት ምንጭ0/current_clocksource"ይዘት በመመዘን የ"xen" ቆጣሪ በነባሪነት ሊኑክስን በእንግዳ ስርአት ውስጥ ሲያሄድ ጥቅም ላይ ውሏል። የጊዜ ምንጩን ወደ "tsc" ከተቀየረ በኋላ በኡቡንቱ ውስጥ ያለው የሙከራ መተግበሪያ የማስፈጸሚያ ጊዜ ከ 68 ወደ 3.3 ሰከንድ ቀንሷል, ማለትም. 20 እጥፍ ፈጣን ሆነ። በተጨማሪም የ kvm-ሰዓት ጊዜ ምንጭ የአፈጻጸም ሙከራ ተካሂዷል፣ ይህም ከTSC ጋር ሲነጻጸር በ20% መዘግየቶችን አሳይቷል። $ ድመት / sys / መሳሪያዎች / ሲስተም / የሰዓት ምንጭ / የሰዓት ምንጭ0 / ይገኛል_clocksource xen tsc hpet acpi_pm $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource xen $ ጊዜ java TimeBench እውነተኛ 1m8.300s ተጠቃሚ 0m38.337s $sys.0m29.875s $sys. echo tsc > /sys/መሳሪያዎች/ስርዓት/የሰዓት ምንጭ/ሰዓት ምንጭ0/የአሁኑ_ሰዓት ምንጭ $ ጊዜ ጃቫ TimeBench እውነተኛ 0m3.370s ተጠቃሚ 0m3.353s sys 0m0.026s

የ TSC ምንጭን በሚመርጡበት ጊዜ ጊዜውን ለማግኘት, የ RDTSC ፕሮሰሰር መመሪያ ጥቅም ላይ ይውላል, አፈፃፀሙ የስርዓት ጥሪ አያስፈልገውም (መመሪያው ከፍ ያለ ልዩ መብቶችን አይፈልግም እና በሲፒዩ ውስጥ ከተሰራው የጊዜ ቆጣሪ ዋጋን ያመጣል). በነባሪ ፣ TSC አልነቃም ምክንያቱም በጥንት ጊዜ ይህ ምንጭ ቀስ በቀስ የጊዜ መንሸራተትን አላስቀረም ፣ ይህም በሌሎች ፕሮሰሰሮች ውስጥ የበለጠ ትክክለኛ ንባቦችን ለማግኘት በሶፍትዌር ተስተካክሏል። በአቀነባባሪ ልማት ላይ የተካኑ አንድ መሐንዲስ እንደሚሉት፣ TSC ሲጠቀሙ የጊዜ ፈረቃን በተመለከተ የሚፈሩት ፍርሃቶች ለረጅም ጊዜ ከእውነት የራቁ ናቸው እናም በዘመናዊ ፕሮሰሰሮች ውስጥ ይህ ምንጭ ለዓመታት የተረጋጋ ንባቦችን ይፈጥራል።

ፕሮዳክሽን ሰርቨሮችን በ Netflix ወደ TSC ምንጭ መቀየር በ 43% የመፃፍ መዘግየት እና ኡቡንቱን በመጠቀም CentOS ን ከ"xen" የጊዜ ምንጭ ጋር ከሚያስኬዱ ውቅሮች በ 4 እጥፍ ፈጣን ውጤቶችን አግኝቷል። የጥናቱ ውጤት ወደ አማዞን ተላልፏል፣ ይህም በኤውኤስ EC2 አካባቢዎች በXen hypervisor (kvm-ሰዓት በ Nitro hypervisor ላይ ተመስርተው ባሉ አካባቢዎች ውስጥ የሚመከር) የነባሪውን የ TSC የጊዜ ምንጭ በይፋ እንዲጠቀሙ ይመከራል።

ምንጭ: opennet.ru

አስተያየት ያክሉ