/çš®é¡ã®ãã°
ããã¯Kubernetsèªäœã®ãã°ã§ã¯ãªããããã泚æãå¿ èŠã§ãã
ç§ã¯ãã®çŽ æŽãããããã°æçš¿ãèªã¿ãŸããïŒ
ããã°æçš¿ãããk8sãcfsã¯ã©ãŒã¿ã䜿çšããŠCPUå¶éãé©çšããŠããããšãããããŸããã æ®å¿µãªããããããã¯ãç¹ã«è¡åã®è¯ãããã³ãã«ãšã£ãŠãäžå¿ èŠãªã¹ãããã«ã«ã€ãªããå¯èœæ§ããããŸãã
ãã°ããåã«æåºããLinuxã«ãŒãã«ã®ãã®æªè§£æ±ºã®ãã°ãåç §ããŠãã ããã
ãã®åé¡ã«å¯ŸåŠãããªãŒãã³ã§ã¹ããŒã«ãããããããããŸãïŒãããæ©èœãããã©ããã¯ç¢ºèªããŠããŸããïŒïŒ
cc @ConnorDoyle @balajismaniam
/ sigããŒã
/çš®é¡ã®ãã°
ããã¯ïŒ51135ã®è€è£œã§ããïŒ
粟ç¥çã«ã¯äŒŒãŠããŸãããCFSã¯ã©ãŒã¿æéã®æ§æã®ãã¬ãŒããªãã ãã§ãªããã«ãŒãã«ã«å®éã®ãã°ããããšããäºå®ãèŠéããŠããããã§ãã ç§ã¯ããã«æ»ã£ãŠïŒ51135ã奜ãã§ãããã«ãã人ã ã«ããå€ãã®ã³ã³ããã¹ããæäŸããŸãã
ç§ãç解ããŠããéããããã¯CFSã¯ã©ãŒã¿ãç¡å¹ã«ããïŒ --cpu-cfs-quota=false
ïŒããæ§æå¯èœã«ããïŒïŒ63437ïŒãã1ã€ã®çç±ã§ãã
ãŸãããã®èŠç¹ïŒã«ãŒãã«ããããããªã³ã¯ãããŠããïŒãèŠãã®ã¯éåžžã«èå³æ·±ããšæããŸãïŒåœ±é¿ã枬å®ããããïŒïŒ https ïŒ
cc @adityakali
ã¯ã©ãŒã¿ã«é¢ãããã1ã€ã®åé¡ã¯ãkubeletããã€ããŒã¹ã¬ããããCPUããšããŠã«ãŠã³ãããããšã§ãã 2ã€ã®ã¹ã¬ãããåãã³ã¢ã§ã¹ã±ãžã¥ãŒã«ãããããã«ã¯ã©ã¹ã¿ãŒãããŒããããããã»ã¹ã«CPUã¯ã©ãŒã¿ã¯ã©ãŒã¿ãããå Žåããã®ãã¡ã®1ã€ã¯ã䜿çšå¯èœãªåŠçèœåã®ããäžéšã§ã®ã¿å®è¡ãããŸãïŒä»ã®ã¹ã¬ããã§äœããçºçããå Žåã«ã®ã¿äœããå®è¡ããŸãïŒã¹ããŒã«ïŒããããèªäœã«ç©çã³ã¢ããããã®ããã«ã¯ã©ãŒã¿ãæ¶è²»ããŸãã ãã®ããã倧å¹
ãªäœæ¥ãè¡ããªããŠããå¿
èŠãªã¯ã©ãŒã¿ã®2åãæ¶è²»ããŸãã
ããã«ã¯ããã€ããŒã¹ã¬ããã£ã³ã°ãæå¹ã«ãªã£ãŠããå®å
šã«ããŒããããããŒãããŒãã§ã¯ããã€ããŒã¹ã¬ããã£ã³ã°ãŸãã¯ã¯ã©ãŒã¿ãç¡å¹ã«ãªã£ãŠããå Žåã®ããã©ãŒãã³ã¹ã®ååã«ãªããšããå¹æããããŸãã
Imo the kubeletã¯ããã®ç¶æ³ãåé¿ããããã«ããã€ããŒã¹ã¬ãããå®éã®CPUãšèŠãªãã¹ãã§ã¯ãããŸããã
@ juliantaylor ïŒ51135ã§è¿°ã¹ãããã«ãCPUã¯ã©ãŒã¿ããªãã«ããããšã¯ãä¿¡é Œã§ããã¯ãŒã¯ããŒããå®è¡ããŠããã»ãšãã©ã®k8sã¯ã©ã¹ã¿ãŒã«ãšã£ãŠæè¯ã®ã¢ãããŒããããããŸããã
ããã¯ãã°ãšèŠãªãããŸããïŒ
äžéšã®ããããCPUå¶éãå®éã«äœ¿ãæãããŠããªãã®ã«ã¹ãããã«ãããŠããå Žåãããã¯ç§ã«ã¯ãã°ã®ããã«èãããŸãã
ç§ã®ã¯ã©ã¹ã¿ãŒã§ã¯ãã¯ã©ãŒã¿è¶ éãããã®ã»ãšãã©ã¯ã¡ããªãã¯ïŒããŒãã¹ã¿ãŒãã¡ããªãã¯ã³ã¬ã¯ã¿ãŒãããŒããšã¯ã¹ããŒã¿ãŒ...ïŒãŸãã¯ãªãã¬ãŒã¿ãŒã«é¢é£ããŠããŸãããããã¯æããã«ããã§åé¡ãšãªã£ãŠããçš®é¡ã®ã¯ãŒã¯ããŒããæã£ãŠããŸãïŒã»ãšãã©äœãããŸããæéãšç®ãèŠãŸããŠãæã å解ããŸãã
ããã§å¥åŠãªã®ã¯ã 40m
ãã100m
ãŸãã¯200m
ã«å¶éãåŒãäžããããšããããããã»ã¹ããŸã æå¶ãããŠããããšã§ãã
ãã®ã¹ãããã«ãããªã¬ãŒããå¯èœæ§ã®ããã¯ãŒã¯ããŒãã瀺ãä»ã®ã¡ããªãã¯ã¯è¡šç€ºãããŸããã
ç§ã¯ä»ã®ãšãããããã®ãããã®å¶éãåé€ããŸãã...ããã¯è¯ããªã£ãŠããŸããããŸããããã¯æ¬åœã«ãã°ã®ããã«èãããŸãããããŠç§ãã¡ã¯Limits
ç¡å¹ã«ãããããè¯ã解決çãæã£ãŠããã¹ãã§ã
@ prune998 @vishhã®ã³ã¡ã³ããšãã®èŠç¹ãåç §ããŠãã ãããæ°åŠã§ãããã¹ãã§ã¯ãªããšèšãããŠããŠããã«ãŒãã«ã¯é床ã«ç©æ¥µçã«ã¹ãããã«ããŸãã ç§ãã¡ïŒZalandoïŒã¯ãã¯ã©ã¹ã¿ãŒã§CFSã¯ã©ãŒã¿ïŒCPUã¹ããããªã³ã°ïŒãç¡å¹ã«ããããšã決å®ããŸããïŒ https ïŒ//www.slideshare.net/try_except_/optimizing-kubernetes-resource-requestslimits-for-costefficiency-and-latency-highload
@hjacobsã«æè¬ããŸãã
ç§ã¯GoogleGKEã䜿çšããŠããŠããããç¡å¹ã«ããç°¡åãªæ¹æ³ãããããŸããããæ€çŽ¢ãç¶ããŠããŸãã
@ prune998 AFAIKãGoogleã¯ãŸã å¿ èŠãªãããå ¬éããŠããŸããã ã¢ããã¹ããªãŒã ã«å°çããCFSãç¡å¹ã«ããå¯èœæ§ã®çŽåŸã«æ©èœãªã¯ãšã¹ããæåºããŸãããããã以æ¥ãã¥ãŒã¹ã¯ãããŸããã
ç§ã¯GoogleGKEã䜿çšããŠããŠããããç¡å¹ã«ããç°¡åãªæ¹æ³ãããããŸããããæ€çŽ¢ãç¶ããŠããŸãã
ä»ã®ãšãããã³ã³ããããCPUå¶éãåé€ã§ããŸããïŒ
CPUãããŒãžã£ãŒã®ããã¥ã¡ã³ãã«ãããšã CFS quota is not used to bound the CPU usage of these containers as their usage is bound by the scheduling domain itself.
ããããCFSã¹ããããªã³ã°ãçºçããŠããŸãã
ä¿èšŒãããQoSã¯ã©ã¹ãéæããããã«CPUå¶éãèšå®ãããšãã¹ãããã«ã«ããå©ç¹ãç¡å¹ã«ãªããããéçCPUãããŒãžã£ãŒã¯ã»ãšãã©ç¡æå³ã«ãªããŸãã
éçCPUäžã®ãããã«CFSã¯ã©ãŒã¿ããŸã£ããèšå®ãããŠããªãã®ã¯ãã°ã§ããïŒ
è¿œå ã®ã³ã³ããã¹ãã«ã€ããŠïŒæšæ¥åŠç¿ïŒïŒ @ hrzbrg ïŒMyTaxiïŒã¯ãCPUã¹ããããªã³ã°ãç¡å¹ã«ãããã©ã°ãKopsã«æäŸããŸããïŒ https ïŒ
ããã§åé¡ã®æŠèŠãå ±æããŠãã ããã åé¡ãäœã§ããããã©ã®ã·ããªãªã§ãŠãŒã¶ãŒã圱é¿ãåãããããããŠãããä¿®æ£ããããã«æ£ç¢ºã«äœãå¿ èŠãã¯ããŸãæ確ã§ã¯ãããŸãããïŒ
çŸåšã®ç§ãã¡ã®ç解ã¯ãç§ãã¡ãéçãè¶ ãããšã眰ããããæå¶ããããšããããšã§ãã ã€ãŸããCPUã¯ã©ãŒã¿ã3ã³ã¢ã§ãæåã®5ããªç§ã§3ã³ã¢ãæ¶è²»ããåŸã100ããªç§ã®ã¹ã©ã€ã¹ã§95ããªç§ã®éã¹ãããã«ããããã®95ããªç§ã§ã¯ã³ã³ããã¯äœãã§ããŸããã ãŸããCPU䜿çšçã®ã¡ããªãã¯ã«CPUã¹ãã€ã¯ã衚瀺ãããŠããªãå Žåã§ããã¹ãããã«ã調æŽãããããšãããããŸããã CPU䜿çšçã枬å®ããæéæ ãç§åäœã§ãããã¹ããããªã³ã°ããã€ã¯ãç§ã¬ãã«ã§çºçããŠãããããå¹³ååãããŠè¡šç€ºãããªããããšèããããŸãã ããããããã§èšåãããŠãããã°ã«ãããç§ãã¡ã¯ä»æ··ä¹±ããŠããŸãã
ããã€ãã®è³ªåïŒ
ãããçºçãããšããã¹ãŠã®ã³ã³ããã®CPUã100ïŒ æå¶ãããŸããïŒ
ãã®ãã°ãããŒãã§ããªã¬ãŒãããããªã¬ãŒã¯äœã§ããïŒ
䜿çšããŠããªããšã®éãã¯äœã§ããlimits
ãšç¡å¹åcpu.cfs_quota
ïŒ
ããŒã¹ãå¯èœãªããããå€æ°ããã1ã€ã®ããããããŒããäžå®å®ã«ããèŠæ±ãå®è¡ããŠããä»ã®ãããã«åœ±é¿ãäžããå¯èœæ§ãããå Žåã limits
ç¡å¹ã«ããããšã¯å±éºãªè§£æ±ºçã§ã¯ãããŸãããïŒ
ãããšã¯å¥ã«ãã«ãŒãã«ã«ãããšã芪ã¯ã©ãŒã¿ãå®å
šã«æ¶è²»ããããšãããã¥ã¡ã³ãããã»ã¹ãæå¶ãããå ŽåããããŸãã ããã§ã®ã³ã³ããã³ã³ããã¹ãã®èŠªã¯äœã§ããïŒãã®ãã°ã«é¢é£ããŠããŸããïŒïŒ https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt
There are two ways in which a group may become throttled:
a. it fully consumes its own quota within a period
b. a parent's quota is fully consumed within its period
ããªã倧ããªåæ¢ã«çŽé¢ããŠããããã¹ãŠã®ããããã¹ããããªã³ã°ã®åèµ·åã«ãŒãã§ã¹ã¿ãã¯ããã¹ã±ãŒã«ã¢ããã§ããªãããšã«å¯æ¥ã«é¢é£ããŠããããã«èŠããŸãïŒæ ¹æ¬çãªåå ã§ã¯ãªãå ŽåïŒã ç§ãã¡ã¯å®éã®åé¡ãèŠã€ããããã«è©³çŽ°ãæãäžããŠããŸãã åæ¢ã«ã€ããŠè©³ãã説æããå¥ã®å·ãéããŸãã
ããã§ã®å©ãã¯å€§æè¿ã§ãã
cc @justinsb
ãŠãŒã¶ãŒã®1人ãCPUå¶éãèšå®ãã掻æ§ãããŒããã¿ã€ã ã¢ãŠããããŠãµãŒãã¹ãåæ¢ãããŸããã
ã³ã³ãããCPUã«åºå®ããŠããå Žåã§ããã¹ãããã«ãçºçããŠããŸãã ããšãã°ãCPUå¶éã1ã§ããã®ã³ã³ããã1ã€ã®CPUã§ã®ã¿å®è¡ããããã«åºå®ããŸãã ã¯ã©ãŒã¿ãæ£ç¢ºã«CPUã®æ°ã§ããå Žåãã©ã®æéã§ãã¯ã©ãŒã¿ãè¶ ããããšã¯äžå¯èœã§ããããã¹ãŠã®å Žåã«ã¹ããããªã³ã°ãèŠãããŸãã
ã«ãŒãã«4.18ãåé¡ã解決ããããšãã©ããã«æçš¿ãããŠããã®ãèŠããšæããŸããã ãŸã ãã¹ãããŠããªãã®ã§ã誰ãã確èªã§ããããããªãšæããŸãã
4.18ã®https://github.com/torvalds/linux/commit/512ac999d2755d2b7109e996a76b6fb8b888631dã¯ããã®åé¡ã«é¢é£ãããããã®ããã§ãã
@mariusgrigoriuããã§èª¬æããã®ãšåãé£åã«é¥ã£ãŠããããã§ãhttps://github.com/kubernetes/kubernetes/issues/67577#issuecomment-462534360 ã
CPUManageréçããªã·ãŒã䜿çšããGuaranteedQoSã¯ã©ã¹ã®ãããã§ã®CPUã¹ããããªã³ã°ã芳å¯ããŸãïŒããã¯æå³ããªãããã§ãïŒã
ãããã®ãããã®limits
ãåé€ãããšããããã¯Burstable QoSã¯ã©ã¹ã«é
眮ãããŸãããããã¯å¿
èŠãªãã®ã§ã¯ãªããããæ®ã£ãŠããå¯äžã®ãªãã·ã§ã³ã¯ãã·ã¹ãã å
šäœã§CFS CPUã¯ã©ãŒã¿ãç¡å¹ã«ããããšã§ããããããå®å
šã«å®è¡ã§ããããšã§ã¯ãããŸããããã¹ãŠã®ãããã«ãã€ã³ããããŠããªãCPU容éãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããšãå±éºãªCPU飜åã®åé¡ãçºçããå¯èœæ§ãããããã§ãã
@vishhäžèšã®ç¶æ³ãèãããšãæåã®è¡åã¯äœã§ããããïŒ ã«ãŒãã«> 4.18ïŒcfs cpuã¢ã«ãŠã³ãã£ã³ã°ä¿®æ£ããããŸãïŒã«ã¢ããã°ã¬ãŒãããïŒããããïŒcfsã¯ã©ãŒã¿æéãççž®ããŠããããã«èŠããŸããïŒ
äžè¬çã«ãã¹ãããã«ãããŠããã³ã³ãããŒããlimits
ãåé€ããããšãææ¡ãããšãæ確ãªèŠåã衚瀺ãããŸãã
1ïŒããããä¿èšŒãããQoSã¯ã©ã¹ã®ãããã§ãããæŽæ°ã®ã³ã¢ããããCPUMnanageréçããªã·ãŒãèšå®ãããŠããå Žå-ãããã®ãããã¯ãBurstable QoSã¯ã©ã¹ã«é
眮ãããããïŒèŠæ±ãªã==å¶éïŒã
2ïŒãããã®ãããã¯ãæ¶è²»ã§ããCPUã®éã«é¢ããŠå¶éããªããç¹å®ã®ç¶æ³äžã§ããªãã®æå·ãåŒãèµ·ããå¯èœæ§ããããŸãã
ãã£ãŒãããã¯/ã¬ã€ãã³ã¹ãããã ããã°å¹žãã§ãã
ã«ãŒãã«ã®ã¢ããã°ã¬ãŒãã¯ééããªã圹ç«ã¡ãŸãããCFSã¯ã©ãŒã¿ãé©çšããåäœã¯ãããã¥ã¡ã³ãã®ææ¡ãšäžèŽããŠããªãããã§ãã
ç§ã¯ãã®åé¡ã®ããŸããŸãªåŽé¢ããã°ããç 究ããŠããŸããã ç§ã®ç 究ã¯ãLKMLãžã®ç§ã®æçš¿ã«èŠçŽãããŠããŸãã
https://lkml.org/lkml/2019/3/18/706
ããã¯èšã£ãŠãã512ac99ããåã®ã«ãŒãã«ã§èª¬æãããŠããåé¡ãåçŸããããšã¯ã§ããŸããã§ããã ãã ãã512ac99以éã®ã«ãŒãã«ã§ããã©ãŒãã³ã¹ã®äœäžãèŠãããŸããã ãããã£ãŠããã®ä¿®æ£ã¯äžèœè¬ã§ã¯ãããŸããã
@mariusgrigoriuã«æè¬ããŸããã«ãŒãã«ã®ã¢ããã°ã¬ãŒããäºå®ããŠããããããããçšåºŠåœ¹ç«ã€ããšãé¡ã£ãŠããŸããhttpsïŒ//github.com/kubernetes/kubernetes/issues/70585ã確èªããŠã¯å®éã«å²ãåœãŠ
@chilukå°ã詳ãã
512ac99ã«ãŒãã«ãããã¯äžéšã®äººã ã®åé¡ãä¿®æ£ããŸãããç§ãã¡ã®æ§æã«åé¡ãåŒãèµ·ãããŸããã ãããã¯ãã¿ã€ã ã¹ã©ã€ã¹ãcfs_rqéã§åæ£ãããæ¹æ³ãä¿®æ£ããæ£ããæéåãã«ãªãããã«ãªããŸããã 以åã¯ãæå¹æéã¯ãããŸããã§ããã
ç¹ã«ã³ã¢æ°ã®å€ããã·ã³ã§ã®Javaã¯ãŒã¯ããŒãã§ã¯ãã¯ãŒã«ãŒã¹ã¬ããããããã¯ãããŠãããããCPU䜿çšçãäœã倧éã®ã¹ãããã«ãçºçããããã«ãªããŸããã ãããã®ã¹ã¬ããã«ã¯ã¿ã€ã ã¹ã©ã€ã¹ãå²ãåœãŠããããã®äžéšã®ã¿ãåŸã§æéåãã«ãªããŸãã ç§ãæžãã*ïŒãã®ã¹ã¬ããã«ãªã³ã¯ãããŠããïŒåæãã¹ãã§ã¯ãããã©ãŒãã³ã¹ãçŽ30åäœäžããŠããããšãããããŸãã å®éã®ããã©ãŒãã³ã¹ã§ã¯ãã¹ãããã«ã®å¢å ã«ããã2ã€ã®ã«ãŒãã«éã§å¿çæéãæ°çŸããªç§äœäžããŸããã
4.19.30ã«ãŒãã«ã䜿çšãããšãã¹ãããã«ãå°ãªããªãããšãæåŸ ããŠããããããåŒãç¶ãã¹ãããã«ããã以åã¯ã¹ãããã«ãããŠããªãã£ãäžéšã®ããããéåžžã«å³ããã¹ãããã«ãããŠããããšãããããŸãïŒkube2iamã¯ãã€ã³ã¹ã¿ã³ã¹ãèµ·åããŠãããããå€ãã®ç§ãã¹ãããã«ãããŠãããšå ±åããŠããŸãã äœãšãããŠïŒ
CoreOS 4.19.25-coreosã§ã¯ãPrometheusãã·ã¹ãã å ã®ã»ãŒãã¹ãŠã®ãããã§CPUThrottlingHighã¢ã©ãŒããããªã¬ãŒããŠããã®ãããããŸãã
@ williamsandrew @ teralypeããã¯@chilukã®èª¿æ»çµæãåæ ããŠããããã§ãã
ããŸããŸãªå
éšã®è°è«ã®çµæãå®éã«ã¯cfsã¯ã©ãŒã¿ãå®å
šã«ç¡å¹ã«ããããšã«ããŸããïŒkubeletã®ãã©ã°--cpu-cfs-quota=false
ïŒãããã«ãããããŒã¹ãå¯èœããããšä¿èšŒä»ãïŒCPUåºå®ãŸãã¯æšæºïŒãããã®äž¡æ¹ã§çºçããŠãããã¹ãŠã®åé¡ã解決ãããããã§ãã
ããïŒããã³ä»ã®ããã€ãã®ãããã¯ïŒã«é¢ããåªããããããããã«ãããŸãïŒ https ïŒ
匷ããå§ãããŸãïŒ+1ïŒ
é·æçãªåé¡ïŒèªå·±ã¡ã¢ïŒ
@ dannyk81å®å šããªã³ã¯ãããããŒã¯ã¯é²ç»ããããããªãšããŠãå©çšã§ããŸãïŒ https ïŒ v = 4QyecOoPsGU
@hjacobs ã話ã倧奜ãïŒ ã©ããããããšã...
ãã®ä¿®æ£ãAKSãŸãã¯GKEã«é©çšããæ¹æ³ã¯ãããŸããïŒ
ããããšã
@agolomoodysaadaãã°ããåã«ãGKEã«æ©èœãªã¯ãšã¹ããæåºããŸããã ã¹ããŒã¿ã¹ãããããªãã®ã§ãGKEãšã¯éäžçã«ä»äºãããŠããŸããã
Azureã®ãµããŒãã«é£çµ¡ãããšããã2019幎8æé ãŸã§å©çšã§ããªããšã®ããšã§ããã
ç§ã¯ããã®åç¶æéãéããŠäžè²«ããŠæå¶ãããã¢ããªã±ãŒã·ã§ã³ã®ã°ã©ããå
±æãããšæããŸããã
ããã¯ã©ã®ã«ãŒãã«ã«ãããŸãããïŒ
ã chiluk ã4.15.0-1037-azureã
ãããã£ãŠãã«ãŒãã«ã³ããã512ac99ã¯å«ãŸããŠããŸããã ããã察å¿ãããã®ã§ã
ãœãŒã¹ã
https://kernel.ubuntu.com/git/kernel-ppa/mirror/ubuntu-azure-xenial.git/tree/kernel/sched/fair.c?h=Ubuntu-azure-4.15.0-1037.39_16.04.1 ïŒid = 19b0066cc4829f45321a52a802b640bab14d0f67
ã€ãŸãã512ac99ã§èª¬æãããŠããåé¡ãçºçããŠããå¯èœæ§ããããŸãã ã§ä¿ã€
512ac99ãä»ã®ååž°ããããããããšãå¿ããªãã§ãã ããã
2019幎4æ5æ¥éææ¥12:08 PMã ãŒãã£ãŒãµãŒã[email protected]
æžããŸããïŒ
@chiluk https://github.com/chiluk "4.15.0-1037-azure"
â
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/kubernetes/kubernetes/issues/67577#issuecomment-480350946 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/ACDI05YeS6wfUE9XkiMbxrLvPllYQZ7Iks5vd4MOgaJpZM4WDUF3
ã
ããã«ã€ããŠLKMLã«ããããæçš¿ããŸããã
https://lkml.org/lkml/2019/4/10/1068
è¿œå ã®ãã¹ããããã ããã°å¹žãã§ãã
ããã¥ã¡ã³ããå€æŽããŠããããã®ããããåéä¿¡ããŸããã
https://lkml.org/lkml/2019/5/17/581
人ã ããããã®ãããããã¹ãããLKMLã®ã¹ã¬ããã«ã³ã¡ã³ãã§ãããšæ¬åœã«å©ãããŸãã çŸæç¹ã§ã¯ãLKMLã§ããã«ã€ããŠèšåããã®ã¯ç§ã ãã§ãããã³ãã¥ããã£ãã¡ã³ããããã®ã³ã¡ã³ãã¯ãŸã£ãããããŸããã ãããã®äžã§LKMLã«é¢ããã³ãã¥ããã£ã®ãã¹ããšè§£èª¬ãåŸãããšãã§ããã°ãæ¬åœã«å€§ãã«åœ¹ç«ã¡ãŸãã
ãã®ç¹å®ã®ãããžã§ã¯ãhttps://github.com/tensorflow/servingã¯ããã®åé¡ã«ãã£ãŠæ·±å»ãªåœ±é¿ãåããŠããããã§ãã ãããŠããã¯äž»ã«C ++ã¢ããªã±ãŒã·ã§ã³ã§ãã
@chiluk ããããã®å
¬éäžã«é©çšã§ããåé¿çã¯ãããŸããïŒ
ã©ããããããšãããããŸãã
@chilukãããã®ã«ãŒãã«ãã°ãKubernetesãCFSã¯ã©ãŒã¿ã䜿çšããŠããä»ã®äººã«æ·±å»ãªåœ±é¿ãåãŒããŠãããšããåŒçšãåéã§ãã
Zolandoã¯å
é±ã®ãã¬ãŒã³ããŒã·ã§ã³ã«ãçŸåšã®ã«ãŒãã«ã§ã®æªãçµéšã¯ãCFSã¯ã©ãŒã¿ãç¡å¹ã«ããããšãçŸåšã®ãã¹ããã©ã¯ãã£ã¹ãšèŠãªããŠããããšãæå³ããŠãããšè¿°ã¹ãŸããã
https://www.youtube.com/watch?v=6sDTB4eV4F8
mytaxiãDatadogãZalandoïŒ Twitterã¹ã¬ããïŒãªã©ãCPUã¹ããããªã³ã°ãç¡å¹ã«ããäŒæ¥ãå¢ããŠã
@derekwaynecarr @ dchen1107 @ kubernetes / sig-node-feature-requests DawnãDerekãããã©ã«ããå€æŽããæãæ¥ãŸãããïŒ ããã³/ãŸãã¯ããã¥ã¡ã³ãïŒ
ã¯ã@whereisaaronã¯ãäžèªç±ãªã¢ããªã±ãŒã·ã§ã³ã®
@agolomoodysaadaåé¿çã¯ã圱é¿ãåããã¢ããªã±ãŒã·ã§ã³ã«cfsã¯ã©ãŒã¿ãäžæçã«ç¡å¹ã«ããããcpuã¯ã©ãŒã¿ãéå°ã«å²ãåœãŠãããšã§ã*ïŒãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãããã«ãããããããã§ã¯ãããŸãããããã«ãã¹ã¬ããã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ãã£ãã¢ããªã±ãŒã·ã§ã³ã®å€§éšåã¯ãããããããããŸãïŒã
ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã¬ããæ°ãæžããããšã«é¢ãããã¹ããã©ã¯ãã£ã¹ããããããã圹ç«ã¡ãŸãã
golangã»ããã®å ŽåGOMAXPROCSã = ceilïŒquotaïŒ
Javaã®å ŽåãCPUã¯ã©ãŒã¿å¶éãèªèããŠå°éããæ°ããJVMã«ç§»è¡ããŸãã 以åã®jvmsã¯ãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœãªã³ã¢ã®æ°ã§ã¯ãªããCPUã³ã¢ã®æ°ã«åºã¥ããŠã¹ã¬ãããçæããŠããŸããã
ãããã¯äž¡æ¹ãšããç§ãã¡ã®ããã©ãŒãã³ã¹ã«å€§ããªæ©æµããããããŠããŸãã
éçºè ãã¯ã©ãŒã¿ã調æŽã§ããããã«ãã¹ãããã«ãçºçããŠããã¢ããªã±ãŒã·ã§ã³ãç£èŠããã³ã¬ããŒãããŸãã
åèãŸã§ã«ããã®ã¹ã¬ãããAzure AKSãµããŒãã«ææããåŸããããã¯ããããã9æäžæ¬ã«ã«ãŒãã«5.0ã«ã¢ããã°ã¬ãŒããããšãã«ããŒã«ã¢ãŠãããããšåçãããŸããã
ãããŸã§ã¯ãå¶éã®äœ¿çšããããŠãã ãã:)
@ prune998 CPUmanagerã䜿çšããŠããå Žåã®å°ããªæ³šæç¹ããããŸãïŒã€ãŸããä¿èšŒãããQoSã®ããããžã®å°çšCPUå²ãåœãŠïŒã
å¶éãåé€ããããšã§ãCFSã¹ããããªã³ã°ã®åé¡ãåé¿ã§ããŸãããä¿èšŒãããQoSããããããåé€ããŠãCPUmanagerããããã®ãããã«å°çšã³ã¢ãå²ãåœãŠãªãããã«ããŸãã
CPUmanagerã䜿çšããªãå Žåã害ã¯ãããŸãããããã®æ¹åãéžæãã人ã«ã¯åèãŸã§ã«ã
å°çšCPUãæèŒãããããã®CFSã¯ã©ãŒã¿ãå®å šã«ç¡å¹ã«ããPRïŒhttps://github.com/kubernetes/kubernetes/issues/70585ïŒããããŸããããŸã ããŒãžãããŠããŸããã
ãŸããäžèšã®ããã«ã·ã¹ãã å šäœã§CFSã¯ã©ãŒã¿ãç¡å¹ã«ããããšãéžæããŸãããããããŸã§ã®ãšããåé¡ã¯ãããŸããã
@ dannyk81 https://github.com/kubernetes/kubernetes/issues/70585ã¯ããŒãžå¯èœãªPRã§ã¯ãããŸããïŒã³ãŒãã¹ããããã®åé¡ã§ãïŒã ããªãïŒãŸãã¯ä»ã®èª°ãïŒã¯PRãæåºã§ããŸããïŒ
ãã§ã«1ã€ãããŸãïŒ //github.com/kubernetes/kubernetes/pull/75682
@dims PRã§ã¯ãªãåé¡ããªã³ã¯ããŸãã...ããããåé¡ã¯PRã«ãªã³ã¯ãããŠããŸã:)確ãã«
ããããšãïŒ+1ïŒ
ãã£ãšïŒ ããããšã@ dannyk81ç§ã¯äººã ãå²ãåœãŠããã€ã«ã¹ããŒã³ãè¿œå ããŸãã
FWIWã§ããã®åé¡ãçºçããCFSã¯ã©ãŒã¿æéãããã©ã«ãã®100ããªç§ã§ã¯ãªã10ããªç§ã«äžãããšãããŒã«ãšã³ãã®é 延ãåçã«æ¹åãããããšãããããŸããã ããã¯ãã«ãŒãã«ã®ãã°ãçºçããå Žåã§ãã䜿çšããªããšç¡é§ã«ãªãã¯ã©ãŒã¿ã®éãã¯ããã«å°ãªããªããããã»ã¹ãããå€ãã®ã¯ã©ãŒã¿ãïŒããå°ãªãå²ãåœãŠã§ïŒããæ©ãååŸã§ããããã ãšæããŸãã ããã¯åãªãåé¿çã§ãããCFSã¯ã©ãŒã¿ãå®å šã«ç¡å¹ã«ããããªãå Žåã¯ãä¿®æ£ãå®è£ ããããŸã§ããã¯ãã³ããšã€ãã«ãªãå¯èœæ§ããããŸãã k8sã¯ã1.12ã§cpuCFSQuotaPeriodæ©èœã²ãŒããš--cpu-cfs-quota-periodkubeletãã©ã°ã䜿çšããŠãããè¡ãããšããµããŒãããŠããŸãã
確èªããå¿ èŠããããŸãããã³ãŒãã«ã¯ã¹ã©ã€ã¹ã®æå°å€ãšã¯ã©ãŒã¿ã®æå°å€ããããããæéããããŸã§ççž®ãããšãå¹æçã«ç¡å¹ã«ããå¹æããããšæããŸãã ã¯ã©ãŒã¿ããªãã«ããŠãœããã¯ã©ãŒã¿ã«ç§»è¡ããã»ããããã§ãããã
@chilukç§ã®çŽ 人ã®ç解ã§ã¯ãããã©ã«ãã®ã¹ã©ã€ã¹ã¯5ããªç§ã§ããããããã以äžã«èšå®ãããšå¹æçã«ç¡å¹ã«ãªããŸãããæéã5ããªç§ãè¶ ããŠããéããã¯ã©ãŒã¿ãé©çšãããŸãã ãããæ£ãããªãå Žåã¯ãééããªãç§ã«ç¥ãããŠãã ããã
--feature-gates=CustomCPUCFSQuotaPeriod=true --cpu-cfs-quota-period=10ms
ã§ãç§ã®ãããã®1ã€ãèµ·åããã®ã«æ¬åœã«èŠåŽããŸããã æ·»ä»ã®ããã¡ããŠã¹ã°ã©ãã§ã¯ãã³ã³ããã¯èµ·åãè©Šã¿ãçµäºãããŸã§æŽ»æ§ãã§ãã¯ã«è¿ã¥ãããšã¯ãããŸããïŒéåžžãã³ã³ããã¯çŽ5ç§ã§èµ·åããŸã-掻æ§ãåæé
延ç§æ°ã60ç§ã«å¢ãããŠãå¹æã¯ãããŸããã§ããïŒããã®åŸãæ°ãããã®ãšäº€æããŸãã
kubelet argsããcpu-cfs-quota-periodãåé€ãããŸã§ãã³ã³ãããŒãå€§å¹ ã«ã¹ãããã«ãããŠããããšãããããŸãããã®æç¹ã§ãã¹ãããã«ã¯éåžžã«ãã©ããã«ãªããã³ã³ãããŒã¯çŽ5ç§ã§åã³èµ·åããŸãã
åèïŒCPUã¹ããããªã³ã°ã®ç¡å¹åã«é¢ããçŸåšã®Twitterã¹ã¬ããïŒ https ïŒ
ãããã¯ã2ã€ã®ã¬ã€ãã³ã·ã«ææãªãµãŒãã¹ã®æ¬çªç°å¢ã§--cpu-cfs-quota-period=10ms
ã«ç§»è¡ããå/åŸã®CPUã¹ããããªã³ã°ã°ã©ãã§ãã
ãããã®ãµãŒãã¹ã¯ãããŸããŸãªã€ã³ã¹ã¿ã³ã¹ã¿ã€ãïŒããŸããŸãªæ±æ/蚱容ç¯å²ïŒã§å®è¡ãããŸãã 2çªç®ã®ãµãŒãã¹ã®ã€ã³ã¹ã¿ã³ã¹ã¯ãæåã«äœãCFSã¯ã©ãŒã¿æéã«ç§»åãããŸããã
çµæã¯è² è·ã«å€§ããäŸåããå¿ èŠããããŸãã
@ d-shiäœãä»ã®ããšãããªãã®ã°ã©ãã§èµ·ãã£ãŠããŸãã æéãéåžžã«çããããçŸåšãããããŠããæå°ã¯ã©ãŒã¿å²ãåœãŠãããå¯èœæ§ããããšæããŸãã 確ãã«ã³ãŒãããã§ãã¯ããå¿ èŠããããŸãã åºæ¬çã«ãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœãªã¯ã©ãŒã¿ã®éã誀ã£ãŠå¢ãããŸããã å®éã«ã¯ã©ãŒã¿ã®å²ãåœãŠãå¢ããããšã§ãåãããšãéæã§ããã¯ãã§ãã
ç§ãã¡ã«ãšã£ãŠã¯ãã¹ãããã«ãããã¬ã€ãã³ã·ãŒã枬å®ããæ¹ãã¯ããã«äŸ¿å©ã§ããã cfs-quota
ç¡å¹ã«ãããšãã¬ã€ãã³ã·ãåçã«æ¹åãããŸããã cfs-quota-period
ãå€æŽããŠãåæ§ã®çµæãåŸãããããã«ããããšæããŸãã
@chilukã¯ãå®éã«ã¯ã©ãŒã¿ã®å²ãåœãŠãå¢ãããŠã¿ãŸããïŒãããããšã®kubernetesã§ãµããŒããããæ倧å€ãŸã§ïŒãããŒã«ãšã³ãã®ã¬ã€ãã³ã·ãã¹ããããªã³ã°ãå€§å¹ ã«åæžãããããšã¯ãããŸããã§ããã p99ã®ã¬ã€ãã³ã·ãŒã¯ã4ã³ã¢ã®å¶éã§ã®çŽ98msãã16ã³ã¢ã®å¶éã§ã®86msã«ãªããŸããã CFSã¯ã©ãŒã¿ã10ããªç§ã«æžãããåŸãp99ã¯4ã³ã¢ã§20ããªç§ã«ãªããŸããã
@blakebarnettã¬ã€ãã³ã·ã枬å®ãããã³ãããŒã¯ããã°ã©ã ãéçºããŸãããã¬ã€ãã³ã·ã¯10ããªç§ãã100ããªç§ã®ç¯å²ã§ã --cpu-cfs-quota-period
ãæŽæ°ããåã®å¹³åã¯çŽ18ããªç§ã§ããããå¹³åã§10ããªç§ãã20ããªç§ã®ç¯å²ã§ããããã®åŸçŽ11msã®ã p99ã®åŸ
ã¡æéã¯çŽ98ããªç§ãã20ããªç§ã«ãªããŸããã
ç·šéïŒç·šéããŠç³ãèš³ãããŸããããæ»ã£ãŠçªå·ãå確èªããå¿ èŠããããŸããã
@ d-shiãããªãã¯ãããã512ac999ã«ãã£ãŠè§£æ±ºãããåé¡ã«ã¶ã€ãã£ãŠããã§ãããã
@chilukããããäœåºŠãèªãã åŸããã®ã³ãŒãã®åœ±é¿ãç解ããã®ã«èŠåŽããŠããããšãèªããªããã°ãªããŸããïŒ
if (cfs_rq->expires_seq == cfs_b->expires_seq) {
- /* extend local deadline, drift is bounded above by 2 ticks */
- cfs_rq->runtime_expires += TICK_NSEC;
- } else {
- /* global deadline is ahead, expiration has passed */
- cfs_rq->runtime_remaining = 0;
- }
runtime_remainingãã°ããŒãã«ããŒã«ãããã°ããåããã ãã§ããã¯ã©ãŒã¿ãæéåãã«ãªãå Žåã ææªã®å Žåãsched_cfs_bandwidth_slice_usã«åºã¥ããŠ5ããªç§éã¹ãããã«ãããŸãã ãããããªãïŒ
ç§ã¯äœããæããã§ããïŒ
@chilukã¯ãç§ã¯æ£ãããšæããŸãã ç§ãã¡ã®æ¬çªãµãŒããŒã¯ãŸã ã«ãŒãã«4.4äžã«ããã®ã§ããã®ä¿®æ£ã¯ãããŸããã ãããããæ°ããã«ãŒãã«ã«ã¢ããã°ã¬ãŒããããšãCFSã¯ã©ãŒã¿æéãããã©ã«ãã«æ»ãããšãã§ããŸãããçŸæç¹ã§ã¯ãããŒã«ãšã³ãã®ã¬ã€ãã³ã·ãŒã®æ¹åã«åãçµãã§ãããæªåœ±é¿ã¯ãŸã çºçããŠããŸããã ã©ã€ãã¯æ°é±éãããããŸãããã
@chilukã«ãŒãã«ã§ãã®åé¡ã®ã¹ããŒã¿ã¹ãèŠçŽããŸããïŒ 512ac999ã®ãããããã£ãããã§ãããåé¡ããããŸããã ã©ããã§å ã«æ»ãããããšãèªã¿ãŸãããïŒ ãŸãã¯ãããã¯å®å šã«/éšåçã«ä¿®æ£ãããŠããŸããïŒ ãããããªããã©ã®ããŒãžã§ã³ã§ããïŒ
@mariusgrigoriuã¯ä¿®æ£ãããŠããŸãããã @ chilukã¯ãããã«ãã¹ããå¿ èŠãªä¿®æ£ãå¿ èŠãªããããäœæããŸããïŒä»åŸæ°æ¥ã®ãã¡ã«ããã«æéãå²ãåœãŠãäºå®ã§ãïŒ
ææ°ã®ã¹ããŒã¿ã¹ã«ã€ããŠã¯ã httpsïŒ //github.com/kubernetes/kubernetes/issues/67577#issuecomment-482198124ãåç §ããŠãã ãã
@Mweaã°ããŒãã«ããŒã«ã¯cfs_b-> runtime_remainingã«æ ŒçŽãããŸãã ãããCPUå®è¡ãã¥ãŒïŒcfs_rqïŒããšã«å²ãåœãŠããããšãã°ããŒãã«ããŒã«ã«æ®ã£ãŠããéãæžå°ããŸãã cfs_bandwidth_slice_usã¯ãã°ããŒãã«ããŒã«ããCPUããšã®å®è¡ãã¥ãŒã«è»¢éãããCPUã©ã³ã¿ã€ã ã®éã§ãã ã¹ãããã«ãããå Žåã¯ãå®è¡ããŠcfs_b-> runtime_remaining == 0ã«ããå¿ èŠãããããšãæå³ããŸããã¯ã©ãŒã¿ãcfs_bã«è£å ãããŠãããããªãã®cfs_rqã ç§ã¯æè¿ãã¹ã©ãã¯ã¿ã€ããŒãCPUããšã®å®è¡ãã¥ãŒããæªäœ¿çšã®ã¯ã©ãŒã¿ã1ããªç§ãã€åãã£ããã£ãããããæéåãã®ã©ã³ã¿ã€ã ã®éãcfs_rqããšã«æ倧1ããªç§ã§ããããšãçºèŠããŸããã ãã®1msã¯ãæéã®çµããã«ç¡é§ã«ãªããæéåãã«ãªããŸãã ã¢ããªã±ãŒã·ã§ã³ã88CPUã«åºããææªã®ã·ããªãªã§ã¯ã100ããªç§ã®æéããã88ããªç§ã®ç¡é§ãªã¯ã©ãŒã¿ã«ãªãå¯èœæ§ããããŸãã ããã¯å®éã«ã¯ãã¹ã©ãã¯ã¿ã€ããŒãã¢ã€ãã«ç¶æ ã®CPUããšã®å®è¡ãã¥ãŒããæªäœ¿çšã®ã¯ã©ãŒã¿ããã¹ãŠåãã£ããã£ã§ããããã«ãããšãã代æ¿æ¡ã«ã€ãªãããŸããã
ããªããç¹ã«åŒ·èª¿ããç·ã«é¢ããŠã¯ã ç§ã®ææ¡ã¯ãCPUããšã®å®è¡ãã¥ãŒã«å²ãåœãŠãããŠããã©ã³ã¿ã€ã ã®æå¹æéãå®å šã«åé€ããããšã§ãã ãããã®è¡ã¯ã512ac999ã®ä¿®æ£ã®äžéšã§ãã ããã«ãããCPUããšã®å®è¡ãã¥ãŒéã®ã¯ããã¯ã¹ãã¥ãŒã«ããã¯ã©ãŒã¿ãæ©æã«æéåãã«ãªããã¯ã©ãŒã¿ããŸã 䜿çšããŠããªãã¢ããªã±ãŒã·ã§ã³ãæå¶ãããåé¡ãä¿®æ£ãããŸããïŒafaiuïŒã åºæ¬çã«ãåæéã®å¢çã§expires_seqãã€ã³ã¯ãªã¡ã³ãããŸãã ãããã£ãŠãexpires_seqã¯ãåãæéã«ããå Žåãåcfs_rqéã§äžèŽããå¿ èŠããããŸãã
@ mariusgrigoriu -CPU䜿çšçãäœããã¹ããããªã³ã°ãé«ããã«ãŒãã«ã512ac999ããåã®å Žåã¯ããããã512ac999ãå¿
èŠã§ãã 512ac999ãæçš¿ããŠããå Žåã¯ãçŸåšlkmlã§è°è«ãããŠããäžèšã§èª¬æããåé¡ãçºçããŠããå¯èœæ§ããããŸãã
ãã®åé¡ã軜æžããæ¹æ³ã¯ãããããããŸãã
@chilukã«ãŒãã«4.14ãšäºææ§ã®ãããã®ãããã®ããŒãžã§ã³ããã§ã«æçš¿ããŠããå¯èœæ§ã¯ãããŸããïŒ æ°åã®ãã¹ãã4.14.121ïŒ4.9.62ããïŒã«ã¢ããã°ã¬ãŒãããã°ãããªã®ã§ãããªãç©æ¥µçã«ãã¹ãããããšãæ€èšããŠããŸãã
ããã§äž¡æ¹ã®äžçãæ倧éã«æŽ»çšããããã«ãæ¬åœã«åé²ããããšæã£ãŠããŸãã æ¥é±ã¯èªåã§ç§»æ€ããããšãã§ããŸããããã§ã«æã£ãŠããã®ã§ããã°ãããã¯çŽ æŽãããããšã§ãã
@PaulFurtado
Ben Segullã®ææ¡ãåããŠãç§ã¯éå»æ°æ¥éã«ããããå®éã«æžãçŽããŸããã æ°ããã«ãŒãã«ãããã¯ãã¯ã©ã¹ã¿ãŒã§ãã¹ãæéãååŸã§ããããã«ãªã次第ããªãªãŒã¹ãããäºå®ã§ãã
@chilukãã®ãããã®æŽæ°ã¯ãããŸããïŒ ããã§ãªããã°å¿é ãããŸãããç§ã¯ãã ããããééããã®ãèŠéããŠããªãããšã確èªããŠããŸã
@PaulFurtado ããããã¯CFSäœæè ã«ãã£ãŠãæ¿èªããããŠãããã¹ã±ãžã¥ãŒã©ã®ã¡ã³ããããããçµ±åããŠLinusã«ããã·ã¥ããã®ãåŸ ã£ãŠããŸãã
@chilukããããšãããããŸãïŒ
ããããçŸåšã®æ¬çªã«ãŒãã«ã§ããã«ãŒãã«4.14ã«ããã¯ããŒãããŸããã
ç§ã¯ããã§ããã¯ããŒããšããªãã®fibtestããã®ããã€ãã®çµæã§èŠç¹ãäœããŸããïŒ https ïŒ//gist.github.com/PaulFurtado/ff6c67ec87416b66ba1c6fc70f7beec1
kubernetesããã³mesosã¯ã©ã¹ã¿ãŒã§äœ¿çšããçŸäžä»£ã®c5.9xlargeããã³m5.24xlargeec2ã€ã³ã¹ã¿ã³ã¹ã§ã¯ããããã«ãã£ãŠfibtestããã°ã©ã ã®ããã©ãŒãã³ã¹ã2åã«ãªããŸãã åäžä»£ã®r4.16xlargeã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã§ã¯ã1.5åã®CPU䜿çšçã管çããŸãããè¿œå ã®å埩ã¯ã»ãšãã©ãããŸããïŒããã¯ãCPUçæãšãã£ããããæ°åã®ææ°é¢æ°çãªæ§è³ªã«ãããã®ãšæããŸãïŒã ãã¹ããããã©ã«ãã®5ç§ã§ã¯ãªã30ç§ã«å¢ãããšããããã®æ°å€ã¯ãã¹ãŠã»ãŒæ£ç¢ºã«ä¿æãããŸãã
ä»é±ããããQAç°å¢ã«ããŒã«ã€ã³ããŠãææªã®ã¹ãããã«ã«èŠããã§ããã¢ããªããããã€ãã®ææšãååŸããŸãã å床ãæè¬ããŸãïŒ
@PaulFurtadoã¯æåã«ãã¹ãã«æè¬ããŸãã kernel.org4.14ãŸãã¯ubuntu4.14ãå®è¡ããŠãããšä»®å®ããŸããã©ã¡ãã«ã512ac999ãå«ãŸããŠããŸãã fibtestã«é¢ããŠã¯ãå®äºããå埩ã¯CPUæéã®äœ¿çšã»ã©éèŠã§ã¯ãããŸãããå®äºããå埩ã¯ããã¹ãã®å®è¡äžã«cpu mhzã®åœ±é¿ã倧ããåããå¯èœæ§ãããããã§ãïŒç¹ã«ããããã©ã®çšåºŠå¶åŸ¡ã§ãããããããªãã¯ã©ãŠãã§ã¯ïŒã
kernel.org4.14ãŸãã¯ubuntu4.14ãå®è¡ããŠãããšä»®å®ããŸããã©ã¡ãã«ã512ac999ãå«ãŸããŠããŸãã
ã¯ããã¡ã€ã³ã©ã€ã³4.14ãå®è¡ããŸãïŒããã«å ããŠãAmazon Linux 2ã«ãŒãã«ããã®ãããã»ããã§ããããã®å Žåããããã®ãããã¯ã©ããéèŠã§ã¯ãããŸããïŒã
512ac999ã¯ã¡ã€ã³ã©ã€ã³4.14.95ã«å°éãã4.14.77ãã4.14.121+ã«ã¢ããã°ã¬ãŒãããå Žåã®åœ±é¿ã確èªããŸããã ããã«ãããmemcachedã³ã³ãããŒïŒã¹ã¬ããæ°ãéåžžã«å°ãªãïŒãäžå¯è§£ãªã¹ããããªã³ã°ããã¹ããããªã³ã°ãªãã«ç§»è¡ããŸããããgolangã³ã³ãããŒãšjavaã³ã³ãããŒïŒã¹ã¬ããæ°ãéåžžã«å€ãïŒã§ã¯ããå€ãã®ã¹ããããªã³ã°ãçºçããŸããã
fibtestã«é¢ããŠã¯ãå®äºããå埩ã¯CPUæéã®äœ¿çšã»ã©éèŠã§ã¯ãããŸãããå®äºããå埩ã¯ããã¹ãã®å®è¡äžã«cpu mhzã®åœ±é¿ã倧ããåããå¯èœæ§ãããããã§ãïŒç¹ã«ããããã©ã®çšåºŠå¶åŸ¡ã§ãããããããªãã¯ã©ãŠãã§ã¯ïŒã
æ°ãã/ãã倧ããªEC2ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãå®éã«ã¯ããã»ããµã®ç¶æ
ãé©åãªã¬ãã«ã§ã¿ãŒãããŒã¹ãããªãã«ããŠ
ãŸãã¯ãã¹ãããããšãããããŸã
ãŸã£ããåé¡ãããŸãããé±æ«ã®QAåã®ç°å¢ã§ã¯ç¶æ³ãå®å®ããŠãããææ¥ããã¡ã€ã³ã®QAç°å¢ã«ããããå±éããŠãããçŸå®çãªå¹æã確èªã§ããããã«ããŸãã memcachedã以åã®ãããã®æ©æµãåããŠããããšãèãããšãç§ãã¡ã¯æ¬åœã«ã±ãŒããçšæããŠãäž¡æ¹ã®ããããé 眮ããç¶æ ã§ãããé£ã¹ããã£ãã®ã§ããã¹ãã§ããŸããã ããªããã¹ãããã«ã«è²»ãããŠãããã¹ãŠã®ä»äºã«ããäžåºŠæè¬ããŸãïŒ
è°è«ãããŠããã«ãŒãã«ãããã«é¢ããŠãã¡ã¢ãæ®ãããã£ãã ãã§ãã
çŸåšã®ãã¹ãã§äœ¿çšããŠããã«ãŒãã«ã«é©åãããŠãCFSã¹ããããªã³ã°ã¬ãŒãã§å€§ããªææãèŠãããŸãããã以åã«cfsæéãç·©åçãšããŠ10ããªç§ã«èšå®ããå Žåã¯ã次ã®ããã«ãªããŸããå€æŽã®ã¡ãªããã確èªããã«ã¯ãããã100ããªç§ãŸã§æ»ããããšèããŠããŸãã
ãããã¯ä»æå
端ã«çéžããŸããã
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425
Torvaldã®ããªãŒã«å°éããããLinuxã«å®å®ããã€ã³ã¯ã«ãŒãžã§ã³ãç¶ããŠäž»èŠãªãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒRedhat / UbuntuïŒã«æåºããŸãã ä»ã®ããšã«é¢å¿ããããLinuxã«å®å®ãããããã«æºæ ããŠããªãå Žåã¯ãçŽæ¥éä¿¡ããããšããå§ãããŸãã
ç§ã¯ãããïŒubuntu 18.04ã5.2.7ã«ãŒãã«ãããŒãïŒ56ã³ã¢CPU E5-2660 v4 @ 2.00GHzïŒãCPUãå€çšããç»ååŠçgolangãã€ã¯ããµãŒãã¹ã§ãã¹ãããããªãå°è±¡çãªçµæãåŸãŸããã ããŒãã§CFSãå®å šã«ç¡å¹ã«ããå Žåã®ãããªããã©ãŒãã³ã¹ã
ã»ãŒãŒãã®ã¹ãããã«ã¬ãŒãã§ã®åæå®è¡æ§/ CPU䜿çšçã«å¿ããŠãã¬ã€ãã³ã·ãŒã5ã35ïŒ å°ãªããªããRPSã5ã55ïŒ å€ããªããŸãã
ããããšãã @ chiluk ïŒ
@jhohertzãèšã£ã
golangã§ããã©ãŒãã³ã¹ãåäžãããã«ã¯ãGOMAXPROCSãceilïŒquotaïŒ+2ã«èšå®ããŸãã ãã©ã¹2ã¯ãããçšåºŠã®äžŠè¡æ§ãä¿èšŒããããšã§ãã
@chilukã¯GOMAXPROCS = 8ã§ãã¹ããããã®ã«å¯ŸããŠGOMAXPROCS = 10ã§cpu.limit = 8ã§ãã¹ããããŸãã-倧ããªéãã§ã¯ãªããçŽ1ã2ïŒ ã§ãã
@zigmundã¯ãcpu.limitãæŽæ°8ã«èšå®ãããŠããããã§ããããã«ãããããã»ã¹ã8cpusã®CPUã»ããã«ãã€ã³ããããŸãã 1ã2ïŒ ã®éãã¯ã8ã€ã®CPUã¿ã¹ã¯ã»ããã§2ã€ã®è¿œå ã®Goroutineã©ã³ããŒã䜿çšããã³ã³ããã¹ãåãæ¿ãã®ãªãŒããŒãããã®å¢å ã ãã§ãã
ã«ãŒãã«ããããåºãé åžããããŸã§ãGOMAXPROCS =ïŒãèšå®ããããšã¯goããã°ã©ã ã®è¯ãåé¿çã§ãããšèšã£ãŠããã¹ãã§ããã
æ¬çªã¯ã©ã¹ã¿ãŒãããããé©çšããã«ãŒãã«ã«ç§»è¡ããŸãããèå³æ·±ãç¬éãããã€ã玹ä»ããŸãã
ã¯ã©ã¹ã¿ãŒã®1ã€ããã®çµ±èš-72ã³ã¢E5-2695v4 @ 2.10GHzã128Gb RAMãDebian 9ã5.2.7ã«ãŒãã«ã®4ããŒããšãããã
æ··åããŒãã¯äž»ã«golangãµãŒãã¹ã§æ§æãããŠããŸãããphpãšpythonããããŸãã
ãŽã©ã³ã ã¬ã€ãã³ã·ãŒã¯äœããæ£ããGOMAXPROCSãèšå®ããããšã¯çµ¶å¯Ÿã«å¿
èŠã§ãã ãããããã©ã«ãã®GOMAXPROCS = 72ã®ãµãŒãã¹ã§ãã ã«ãŒãã«ãçŽ16ã§å€æŽãããã®åŸãã¬ã€ãã³ã·ãŒãäœäžããCPU䜿çšçã倧å¹
ã«äžæããŸããã 21:15ã«ãæ£ããGOMAXPROCSãšCPU䜿çšçãæ£èŠåããŠèšå®ããŸããã
Pythonã äœåãªåããããã«ããããé©çšãããšããã¹ãŠãæ¹åãããŸãããCPU䜿çšçãšé
延ãæžå°ããŸããã
PHPã CPU䜿çšçã¯åãã§ãäžéšã®ãµãŒãã¹ã§ã¯ã¬ã€ãã³ã·ãŒãã»ãšãã©äœäžããŠããŸããã 倧ããªå©çã§ã¯ãããŸããã
@zigmundã«æè¬ããŸãã
ããªããI setted correct GOMAXPROCS
ãšèšã£ããšãã«ç§ããããåŸããã©ããã¯ããããŸãã...
72ã³ã¢ããŒãã§ãããã1ã€ã ãå®è¡ããŠããããã§ã¯ãªãã®ã§ã GOMAXPROCS
ããããã®CPUå¶éãšåããããäœãå€ã«èšå®ããŸããïŒ
@zigmundã«æè¬ããŸãã å€åºå ã®å€æŽã¯ãäºæ³ããããã®ãšã»ãŒäžèŽããŠããŸãã
GILãããã®å©ç¹ãå€§å¹ ã«æã¡æ¶ããšæã£ãŠããã®ã§ãPythonã®æ¹åã«ã¯æ¬åœã«é©ããŠããŸãã ã©ã¡ãããšããã°ããã®ãããã¯ã»ãŒçŽç²ã«å¿çæéãççž®ããæå¶ãããæéã®å²åãæžãããCPU䜿çšçãåäžãããã¯ãã§ãã ããªãã®Pythonã¢ããªã±ãŒã·ã§ã³ã¯ãŸã å¥å šã§ãããïŒ
@ prune998ç³ãèš³ãããŸããããã¹ãã«ãã¹ã®å¯èœæ§ããããŸãã GOMAXPROCS = limits.cpuãèšå®ããŸããã çŸåšããã®ã¯ã©ã¹ã¿ãŒã«ã¯ããŒããããçŽ110åã®ãããããããŸãã
@chilukç§ã¯Pythonã
@chilukããŸããŸãªLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãžã®ãããã®é²è¡ç¶æ³ã远跡ããæ¹æ³ã説æããŠããã ããŸããïŒ ç§ã¯ç¹ã«debianãšAWSLinuxã«èå³ããããŸãããä»ã®äººãUbuntuãªã©ã«èå³ãæã£ãŠãããšæããŸãã®ã§ãã©ããªå ãåœãŠãŠããããããé¡ãããŸãã
@Nuru https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html?highlight=stable%20rules ...åºæ¬çã«ããããããLinusãã«ãããããããlinux-stableãä»ããŠéä¿¡ã
@chilukLinuxã®éçºããã»ã¹ã«ã€ããŠã¯äœãç¥ããŸããã ãLinus'treeããšã¯ã httpsïŒ//github.com/torvalds/linuxãæå³ã
Linusã®ããªãŒã¯ã httpsïŒ//git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ã«ãããŸãã ç§ã®å€æŽã¯çŸåšãéçºçµ±åããªãŒã§ããlinux-nextã§ã¹ããŒãžã³ã°ãããŠããŸãã ãããã«ãŒãã«éçºã¯æé»æ代ã«å°ãç«ã¡åŸçããŠããŸãããããã¯æ©èœããŸãã
5.3ããªãªãŒã¹ããã5.4-rc0ã§éçºãéå§ãããšã圌ã¯linux-nextããªãŒããå€æŽãåã蟌ãå¯èœæ§ããããŸãã ããã¯ãå®å®ããã«ãŒãã«ããã®ä¿®æ£ããã«ãå§ãããšç§ãæåŸ ããæéæ ã®ãããã§ãã Linusã5.3ãå®å®ããŠãããšæãããšãã¯ãã€ã§ãã誰ã®æšæž¬ã§ããããŸãã
[Linus]ã¯ã5.3ããªãªãŒã¹ããã5.4-rc0ã§éçºãéå§ãããšãlinux-nextããªãŒããå€æŽãåã蟌ãå¯èœæ§ããããŸãã ããã¯ãå®å®ããã«ãŒãã«ããã®ä¿®æ£ããã«ãå§ãããšç§ãæåŸ ããæéæ ã®ãããã§ãã Linusã5.3ãå®å®ããŠãããšæãããšãã¯ãã€ã§ãã誰ã®æšæž¬ã§ããããŸãã
@chilukLinusã2019幎9æ15æ¥ã«5.3ãå®å®ããŠãããšå€æããããã§ãã ã§ã¯ããlinux-nextããšã¯äœã§ããã次ã®ã¹ãããã§ãããã®é²è¡ç¶æ³ãã©ã®ããã«è¿œè·¡ããŸããïŒ
ãã®ããããå«ãDebianã¹ãã¬ããããã±ãŒãžãAWSã€ã¡ãŒãžãäœæãã人ã¯ããŸããïŒ https://github.com/kubernetes-sigs/image-builder/tree/master/images/kube-deploy/imagebuilderã䜿çšããŠãããå®è¡ããããšããŠã
ãã§ã«ååšããå Žåã¯ãéè€ããäœæ¥ã¯é¿ããããšæã£ãŠããŸããã
ããã¯çŸåšLinusã®ããªãŒã«ããŒãžãããŠããã5.4ã§ãªãªãŒã¹ãããã¯ãã§ãã ãŸãããããlinux-stableã«éä¿¡ãããšããããããã¹ã ãŒãºã«é²ããšä»®å®ãããšãå®å®ããããã»ã¹ã«æ£ããåŸããã¹ãŠã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ããŸããªããããååŸãå§ããã¯ãã§ãã
ãã®å€æŽãCentOSïŒ7ïŒã«è³ããã©ããããŸãã¯ã©ã®ããã«ãããå®è¡ããããç¥ã£ãŠãã人ã¯ããŸããïŒ ããã¯ããŒããªã©ãã©ã®ããã«æ©èœãããããããªãã
@till https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -531370333
å®å®ããã«ãŒãã«ã®ããã«ãããã§äŒè©±ãè¡ãããŠããŸãã
https://lore.kernel.org/stable/CAC=E7cUXpUDgpvsmMaMU6sAydbfD0FEJiK25R1r=e9=YtcPjGw@mail.gmail.com/
ãŸããKubeConã«è¡ã人ã®ããã«ãç§ã¯ããã§ãã®åé¡ãæ瀺ããŸãã
https://sched.co/Uae1
ã¹ã±ãžã¥ãŒã©ã®ã¡ã³ããããã®èšèã¯æ¬¡ã®ãšããã§ããAckGregHKã¯ãå®å®ããããªãŒã«å ¥ããããã«æ¢ããŠããŸãããïŒ
Greg KHã¯ãã¹ã±ãžã¥ãŒã©ã®ã¡ã³ãããå¿çããªããªã£ãããïŒããããã¡ãŒã«ãèŠéããã ãïŒããã®ãããã«é¢ãã決å®ã延æããŸããã ãã®ãããããã¹ãããããã¯ããŒãããå¿ èŠããããšèããŠããLKMLã«é¢ããç§ä»¥å€ã®äººããã®ã³ã¡ã³ããããã ããã°å¹žãã§ãã
CoreOSã䜿çšããŠãã人ã«ã¯ã @ chilukã®ãããã®ããã¯ããŒããèŠæ±ããåé¡ããããŸãã
CoreOSã«ãŒãã«4.19.82ã«ã¯ä¿®æ£ããããŸãïŒ https ïŒ
CoreOS Container Linux 2317.0.1ïŒã¢ã«ãã¡ãã£ãã«ïŒã«ã¯ä¿®æ£ããããŸãïŒ https ïŒ http://coreos.com/releases/#2317.0.1
Linuxå®å®çãžã®ããã¯ããŒãã¯ãããããæ£ãããŠããããã«èŠããŸãã @chiluk Linuxå®å®çã®ããã¯ããŒãã«åãçµãã€ããã§ããïŒ ãããããªãããããDebianã®ãã¹ãã¬ãããã«å
¥ãã kops
ã«ãã£ãŠããã¯ã¢ãããããããã«ã4.9ã«ããã¯ããŒãããŠãã ããã ãã¹ãã¬ãããã«å
¥ãã®ã«6ãæãããããšæããŸããããããŸã§ã«kops
ã¯ããã¹ã¿ãŒãã«ç§»è¡ããã§ãããã
@Nuru ãç§ã¯ããããããã¯ããŒãããã¹ãã¬ããããã±ãŒãžïŒstretch-backportsã«ãŒãã«ã«åºã¥ãïŒãšããã¹ããããå Žåã¯kops1.11察å¿ã®AMIãäœæããŸããã
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-4.19.67-pm_4.19.67-1_amd64.buildinfo
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-image-4.19.67-pm_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-image-4.19.67-pm-dbg_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-headers-4.19.67-pm_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-4.19.67-pm_4.19.67-1_amd64.changes
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-libc-dev_4.19.67-1_amd64.deb
293993587779 / k8s-1.11-debian-stretch-amd64-hvm-ebs-2019-09-26
@blakebarnettãå°œåããã ãããããšãããããŸãããè¿·æããããããŠç³ãèš³ãããŸããããå°ãæ··ä¹±ããŠããŸãã
3ã€ã®ããããã¹ãŠã4.9ã«ããã¯ããŒãããŸãããïŒ ïŒå€æŽãããã«ãããã©ããã確èªããããã«Debianããã±ãŒãžãã©ãããã°ãããããããŸããããŸãããå€æŽãããã¥ã¡ã³ãã§ã¯å®éã«äœãå€æŽããããã«ã€ããŠã¯è§ŠããŠããŸãããïŒ
ãŸããAMIã¯ã©ã®å°åã§å©çšã§ããŸããïŒ
ããããã¹ãã¬ããããã¯ããŒãã«ãŒãã«ïŒ4.19ïŒã䜿çšããŸãããããã¯ãAWSã§ãå¿ èŠãªä¿®æ£ãå«ãŸããŠããããã§ãïŒç¹ã«M5 / C5ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã®å ŽåïŒã
ç§ã¯ä¿¡ãããã¹ãŠã®ããããçµã¿èŸŒãã å·®åãé©çšããŸãããä»ã®å Žæã§åé€ããã4.19ã®å€æ°ãžã®äœåãªåç §ãåé€ããã«ã¯ãå°ãå€æŽããå¿ èŠããããŸãããæåã«ãã®https://github.com/kubernetes/kubernetes/issues/67577ãé©çšããŸãã
--- kernel/sched/fair.c 2019-09-25 16:06:02.954933954 -0700
+++ kernel/sched/fair.c-b 2019-09-25 16:06:56.341615817 -0700
@@ -4928,8 +4928,6 @@
cfs_b->period_active = 1;
overrun = hrtimer_forward_now(&cfs_b->period_timer, cfs_b->period);
- cfs_b->runtime_expires += (overrun + 1) * ktime_to_ns(cfs_b->period);
- cfs_b->expires_seq++;
hrtimer_start_expires(&cfs_b->period_timer, HRTIMER_MODE_ABS_PINNED);
}
--- kernel/sched/sched.h 2019-08-16 01:12:54.000000000 -0700
+++ sched.h.b 2019-09-25 13:24:00.444566284 -0700
@@ -334,8 +334,6 @@
u64 quota;
u64 runtime;
s64 hierarchical_quota;
- u64 runtime_expires;
- int expires_seq;
short idle;
short period_active;
@@ -555,8 +553,6 @@
#ifdef CONFIG_CFS_BANDWIDTH
int runtime_enabled;
- int expires_seq;
- u64 runtime_expires;
s64 runtime_remaining;
u64 throttled_clock;
AMIãç§ãã¡ã«å ¬éãããŸãã-west-1
ã圹ã«ç«ãŠã°å¹žãã§ãã
ãããã®ããããããã¯ããŒãããLinuxã§å®å®ããã«ãŒãã«ã«éä¿¡ããŸãã
v4.14 https://lore.kernel.org/stable/[email protected]/
v4.19 https://lore.kernel.org/stable/[email protected]/ #t
ããã«ã¡ã¯ã
4.19ãã©ã³ãã«ããããçµ±åããåŸããã¹ã¿ãŒãšã¹ãã¬ããããã¯ããŒãã®ã«ãŒããŒãé©åã«ã¢ããã°ã¬ãŒãããããã®debianã«é¢ãããã°ã¬ããŒããéããŸããã
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946144
debianããã±ãŒãžã®ã¢ããã°ã¬ãŒãã«ã€ããŠæ°ããã³ã¡ã³ããè¿œå ããããšãèºèºããªãã§ãã ããã
ãããããŸãã¹ãã ã§ã¯ãªãããšãé¡ã£ãŠããŸããã @ chilukããã®ãã®ãã°ãããè¬æŒãããã®åé¡ã«é¢é£ããå€ãã®èæ¯ã®è©³çŽ°ââã«ãªã³ã¯ããããšæããŸããhttps://youtu.be/UE7QX98-kO0ã
GKEã®ã¹ãããã«ãåé¿ããæ¹æ³ã¯ãããŸããïŒ phpã³ã³ããã®1ã€ã®ã¡ãœãããéåžžã®0.1ç§ã§ã¯ãªã120ç§ããããšãã倧ããªåé¡ãçºçããŸãã
CPUå¶éãåé€ããŸã
ãã§ã«è¡ã£ãããã«ãCPUèŠæ±ãå°ãããããšãã³ã³ãããŒãæå¶ãããŸãã ãããåé¡ã®æ žå¿ã§ãããå¶éããªããCPUèŠæ±ã®ã¿ã䜿çšãããšãã¹ãããã«ãçºçããŸã:(
@bartoszhernasããã§ééã£ãåèªã䜿çšããŠãããšæããŸãã ãã®ã¹ã¬ããã®äººã ããã¹ãããã«ããåç §ãããšãã圌ãã¯cfs垯åå¹ å¶åŸ¡ãåç §ããcgroupã®å¢å ã®ããã«cpu.statã§nr_throttledãåç §ããŸãã ããã¯ãCPUå¶éãæå¹ã«ãªã£ãŠããå Žåã«ã®ã¿æå¹ã«ãªããŸãã GKEãããªãã®ç¥ããªããã¡ã«ããªãã®ãããã«å¶éãè¿œå ããŠããªãéããç§ã¯ããªããæã£ãŠãããã®ãã¹ãããã«ãšã¯åŒã³ãŸããã
ããªãã説æããããšããããã»ããµã®ç«¶åããšåŒã³ãŸãã ããããããµã€ãºãæ£ãããªãã¢ããªã±ãŒã·ã§ã³*ïŒãªã¯ãšã¹ãïŒãè€æ°ãããšæãããŸãããããã®ã¢ããªã±ãŒã·ã§ã³ã¯ããªã¯ãšã¹ããããã®ãããå€ã䜿çšããŠãããããããã¯ã¹äžã®ããã»ããµããã®ä»ã®ãªãœãŒã¹ãããã£ãŠç«¶åããŠããŸãã ããããå¶éã䜿çšããæ£ç¢ºãªçç±ã§ãã ãã®ããããããã®äžé©åãªãµã€ãºã®ã¢ããªã±ãŒã·ã§ã³ã¯ãããã¯ã¹äžã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ã«ã®ã¿åœ±é¿ãäžããå¯èœæ§ããããŸãã
ãã1ã€ã®å¯èœæ§ã¯ãèŠæ±éãäžååãªããã«ã¹ã±ãžã¥ãŒãªã³ã°åäœãäžååã«ãªãå¯èœæ§ããããŸãã èŠæ±ãäœãèšå®ããããšã¯ãããé«ããèŠæ±ãã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠæ£ã®ãé©åãªãå€ãèšå®ããããšã«äŒŒãŠããŸãã ãã®è©³çŽ°ã«ã€ããŠã¯ããœããå¶éã確èªããŠãã ããã
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥éæäœããªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã
SIG-ãã¹ããkubernetes /ãã¹ãã»ã€ã³ãã©ããã³/ãŸãã¯ãžã®ãã£ãŒãããã¯ãéä¿¡fejta ã
/ lifecycle stale
/ remove-lifecyclestale
ç§ã®ç解ã§ã¯ãã«ãŒãã«ã®æ ¹æ¬çãªåé¡ãä¿®æ£ããã httpsïŒ//github.com/coreos/bugs/issues/2623ã®ContainerLinuxãªã©ã§å©çšã§ããããã«ãªããŸãã
ãã®ã«ãŒãã«ãããã®åŸã«æ®ã£ãŠããåé¡ãç¥ã£ãŠãã人ã¯ããŸããïŒ
@sfudeus Kubernetesã¯ãLinuxã®ä»»æã®ãã¬ãŒããŒããŸãã¯AFAIKãUnixã®POSITæºæ ã®ãã¬ãŒããŒã§å®è¡ã§ããŸãã ãã®ãã°ã¯ãLinuxã䜿çšããŠããªã人ã«ãšã£ãŠã¯åé¡ã§ã¯ãªããäžéšã®Linux掟çãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ä¿®æ£ãããŠãããä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ä¿®æ£ãããŠããŸããã
æ ¹æ¬çãªåé¡ã¯Linuxã«ãŒãã«5.4ã§ä¿®æ£ãããŸããããçŸæç¹ã§ã¯ã»ãšãã©èª°ã䜿çšããŠããŸããã ãããã¯ãããŸããŸãªå€ãã«ãŒãã«ãžã®ããã¯ããŒãã«å©çšã§ããããã«ãªãããŸã 5.4ã«ãŒãã«ã«ç§»è¡ããæºåãã§ããŠããªãæ°ããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«å«ãŸããŠããŸãã ãã®åé¡ãåç §ããŠããäžèšã®ã³ãããã®ãªã¹ããããããããã«ããã°ä¿®æ£ãããã¯ã誰ããKubernetesã䜿çšããŠããå¯èœæ§ã®ããç¡æ°ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«çµã¿èŸŒãŸããéçšã«ãããŸãã
ãããã£ãŠãã¢ã¯ãã£ããªã³ãããåç §ããŸã 衚瀺ãããŠããéããã®åé¡ãéãããŸãŸã«ããŠãããããšæããŸãã ãŸããKubernetesã®ã€ã³ã¹ããŒã«ã圱é¿ãåãããã©ãããå€æããããã«ã誰ãã䜿çšã§ããã¹ã¯ãªãããŸãã¯ãã®ä»ã®ç°¡åãªæ¹æ³ã§éããŠããããããšæããŸãã
@Nuru Fineç§ã«ãšã£ãŠã¯ãä»ã®ã«ãŒãã«ã®åé¡ãæ®ã£ãŠããªãããšã確èªãããã£ãã ãã§ããããã¯ãã§ã«ããã£ãŠããŸãã ç§ã¯å人çã«ãä¿®æ£ãçµã¿èŸŒãã 倧èŠæš¡ãªãã£ã¹ããªãã¥ãŒã·ã§ã³ãããé·ããããéãããŸãŸã«ããªãã§ããããç¡éã®IoTããã€ã¹ãåŸ ã€ããšã¯ãç¡éã«åŸ ã€ããšãæå³ããå¯èœæ§ããããŸãã ã¯ããŒãºãããåé¡ãèŠã€ããããšãã§ããŸãã ããããããã¯ç§ã®2ã»ã³ãã ãã§ãã
ããã人ã ã«ç¥ãããããã®æ£ããå Žæã§ãããã©ããã¯ããããŸãããããããã©ãã«æã¡åºããã¯æ¬åœã«ããããŸããã
k8s1.15.10ã¯ã©ã¹ã¿ãŒã䜿çšããŠDebianBusterã§5.4Linuxã«ãŒãã«ãïŒbuster-backportsã«ãŒãã«ã䜿çšããŠïŒå®è¡ããŠããŸãããããã«ã¯ãŸã åé¡ããããŸãã ç¹ã«ãéåžžã¯ã»ãšãã©å®è¡ããå¿
èŠããªãïŒkube-downscalerã¯ãéåžžãçŽ3mã®CPUãå¿
èŠãšããäŸã§ãïŒãå²ãåœãŠãããŠããcpuãªãœãŒã¹ãéåžžã«å°ãªããããïŒkube-downscalerã®å Žåã¯50mïŒã®å Žåã¯ç¹ã«ããã§ããã¯ã©ã¹ã¿ãŒïŒãŸã éåžžã«é«ãã¹ãããã«å€ã衚瀺ãããŸãã åèãŸã§ã«ãkube-downscalerã¯åºæ¬çã«Pythonã¹ã¯ãªããã§ããã sleep
ã30åéå®è¡ããŠããäœããå®è¡ããŸãã cAdvisorã¯ããã®ã³ã³ãããŒã®container_cpu_cfs_throttled_periods_totalã®å¢å ãããã®ã³ã³ãããŒã®container_cpu_cfs_periods_totalå€ãšåžžã«ã»ãŒåãã§ããããšã瀺ããŠããŸãïŒ5mééã§å¢å ã確èªãããšäž¡æ¹ãšãçŽ250ã§ãïŒã æå¶ãããæéã¯0ã«è¿ããšäºæ³ãããŸãã
ãããééã£ãŠæž¬å®ããŠããŸããïŒ cAdvisorã¯èª€ã£ãããŒã¿ãåºåããŠããŸããïŒ æå¶ãããæéã®äœäžãèŠãããã¯ãã§ãããšããç§ãã¡ã®ä»®å®ã¯æ£ããã§ããïŒ ããã§ã¢ããã€ã¹ãããã ããã°å¹žãã§ãã
5.4ã«ãŒãã«ã«åãæ¿ããåŸããã®åé¡ã®ãããããã®æ°ãå°ãïŒçŽ40ïŒ ïŒæžå°ããã®ãããããŸããããçŸåšãå®éã®åé¡ã§ãããã©ããã¯ããããŸããã äž»ã«ãäžèšã®çµ±èšãèŠããšã3mã®å¹³åCPU䜿çšçã§ãããã®å€ãååŸããå Žåãããã§ãã¹ããããªã³ã°ããå®éã«äœãæå³ããã®ãããããŸããã å®è¡äžã®ããŒãã¯ãªãŒããŒã³ããããããŠããããå¹³åCPU䜿çšçã¯10ïŒ æªæºã§ãã
@timstoopã¹ã±ãžã¥ãŒã©ãŒãæ°ã«ããééã¯ã30åã®å€§ããªç¯å²ã§ã¯ãªãããã€ã¯ãç§ã®é åã«ãããŸãã ã³ã³ãããŒã®CPUå¶éã50ããªã¯ãã§ã100ãã€ã¯ãç§ã®ã¹ãã³ã§50ããªã¯ãã䜿çšããå Žåã30åéã¢ã€ãã«ç¶æ ã§ãããã©ããã«é¢ä¿ãªããã³ã³ãããŒã¯ã¹ãããã«ãããŸãã äžè¬ã«ã50ããªã¯ãã¯éåžžã«å°ããCPUå¶éã§ãã Pythonããã°ã©ã ããã®äžéå€ã§åäžã®HTTPSèŠæ±ãè¡ã£ãå Žåã§ããæå¶ãããããšã¯ã»ãŒç¢ºå®ã§ãã
å®è¡äžã®ããŒãã¯ãªãŒããŒã³ããããããŠããããå¹³åCPU䜿çšçã¯10ïŒ æªæºã§ãã
æ確ã«ããããã«ãããŒãã®è² è·ãšããŒãäžã®ä»ã®ã¯ãŒã¯ããŒãã¯ãã¹ãããã«ãšã¯äœã®é¢ä¿ããããŸããã ã¹ããããªã³ã°ã¯ãã³ã³ãããŒ/ cgroupèªäœã®å¶éã®ã¿ãèæ ®ããŠããŸãã
@PaulFurtadoãåçããããšãããããŸãïŒ ãã ãããããèªäœã¯ããã®ã¹ãªãŒãäžã®å¹³å䜿çšéã3m cpuã§ããããŸã æå¶ãããŠããŸãã ãã®éããªã¯ãšã¹ãã¯è¡ããããã¹ãªãŒããåŸ æ©ããŠããŸãã 50mã«åœãããã«ã§ãããšããã§ããã ãããšããããã¯ãšã«ããééã£ãä»®å®ã§ããïŒ
ããã¯éåžžã«å°ãªãæ°ã§ããå¯èœæ§ãé«ãããã粟床ã®åé¡ãçºçããå¯èœæ§ããããŸãã ãããŠã50mã¯éåžžã«äœãã®ã§ãäœã§ãã€ãŸããå¯èœæ§ããããŸãã Pythonã®ã©ã³ã¿ã€ã ã¯ãã¹ãªãŒãäžã«ã¹ã¬ããã§ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãå®è¡ããŠããå ŽåããããŸãã
ããªãã¯æ£ããã£ããç§ã¯çå®ã§ã¯ãªãä»®å®ãããŠããŸããã ãæå°ããããšãããããŸãïŒ ä»ã¯çã«ããªã£ãŠããŸãã
ã«ãŒãã«ãããã4.19LTSã«ãŒãã«ã«ãããããŠãããããã«ãããã®ãå€§å¹ ã«æ¹åãããCoreOS / Flatcarã«è¡šç€ºããããšèšãããã£ãã ãã§ãã çŸæç¹ãèŠããšãæå¶ãããŠããã®ã¯ãããããå¶éãåŒãäžããã¹ãããã€ãã®ããšã ãã§ãã ïŒã¹ãã€ã«ïŒ
@sfudeus @chilukã«ãŒãã«ã§ãããä¿®æ£ãããŠãããã©ããã確èªããç°¡åãªãã¹ãã¯ãããŸããïŒ
kope.io/k8s-1.15-debian-stretch-amd64-hvm-ebs-2020-01-17ïŒçŸåšã®å
¬åŒkops
ã€ã¡ãŒãžïŒã«ããããé©çšãããŠãããã©ããã¯ããããŸããã
@mariusgrigoriuã«åæããŸããéçCPUããªã·ãŒã®äžã§æä»çCPUã»ããã§å®è¡ããããããã®
@Nuruç§ã¯https://github.com/indeedeng/fibtestãæžããŸãã
ããã¯ããªããåŸãããšãã§ããã®ãšã»ãŒåãããã決å®çãªãã¹ãã§ãããããªãã¯Cã³ã³ãã€ã©ãå¿
èŠãšããã§ãããã
å®äºããå埩åæ°ã¯ç¡èŠããŸãããã·ã³ã°ã«ã¹ã¬ããå®è¡ãšãã«ãã¹ã¬ããå®è¡ã«äœ¿çšãããæéã«çŠç¹ãåãããŸãã
ã©ã®ã«ãŒãã«ã«ããããé©çšãããŠãããã確èªããè¯ãæ¹æ³ã¯ã @ chilukã®æåŸã®ã¹ã©ã€ãã®1ã€ã«ãããšhttps://www.youtube.com/watch?v=UE7QX98-kO0
ã«ãŒãã«4.15.0-67ã«ã¯ãããïŒhttps://launchpad.net/ubuntu/+source/linux/4.15.0-67.76ïŒãããããã§ããããªã¯ãšã¹ã/å¶éãã¯ããã«äžã«ããäžéšã®ãããã§ã¯ãŸã ã¹ãããã«ãèŠãããŸããããã®CPU䜿çšçã
ãªã¯ãšã¹ãã250mã«èšå®ãã500mã«å¶éããŠãçŽ50msã®äœ¿çšéã«ã€ããŠè©±ããŠããŸãã CPUæéã®çŽ50ïŒ
ãæå¶ãããŠããã®ãããããŸããããã®å€ã¯äºæ³ãããã»ã©äœããåãå
¥ããããšãã§ããŸããïŒ ãŒããŸã§äžããŠã»ããã®ã§ããã䜿çšéãå¶éã«è¿ã¥ããŠããªãå Žåã¯ããŸã£ããæå¶ãããã¹ãã§ã¯ãããŸããã
æ°ããããããé©çšããã«ãŒãã«ã䜿çšããŠãã人ã¯ããŸã ã¹ãããã«ãæ®ã£ãŠããŸããïŒ
@ vgarcia-teããããé©çšãããŠãããã®ãšãããŠããªããã®ããªã¹ãããç¥ãã«ã¯ãããŸãã«ãå€ãã®ã«ãŒãã«ã埪ç°ããŠããŸãã ãã®åé¡ãåç §ããŠãããã¹ãŠã®ã³ããããèŠãŠãã ããã æ°çŸã Ubuntuã®å€æŽãã°ãèªãã ãšããã4.15ã«ã¯ãŸã ããããé©çšãããŠãããïŒAzureã§å®è¡ããããã®mabyeãé€ãïŒããªã³ã¯ãããããã¯æåŠãããããšãããããŸããã
å人çã«ã¯ã4.9ã·ãªãŒãºã«èå³ããããŸããããã¯kops
ã䜿çšããŠãããã®ã§ãããä¿®æ£ãããAMIããã€ãªãªãŒã¹ãããããç¥ãããããã§ãã
ãã®éã @ bobrikã®ãã¹ããå®è¡ããŠã¿ãããšãã§ããŸããããã¯ç§ã«ã¯ããªãè¯ãããã§ãã
wget https://gist.githubusercontent.com/bobrik/2030ff040fad360327a5fab7a09c4ff1/raw/9dcf83b821812064fa7fb056b8f22cbd5c4364f1/cfs.go
sudo docker run --rm -it --cpu-quota 20000 --cpu-period 100000 -v $(pwd):$(pwd) -w $(pwd) golang:1.9.2 go run cfs.go -iterations 15 -sleep 1000ms
CFSãé©åã«æ©èœããŠããå Žåãæžã蟌ã¿æéã¯åžžã«5ããªç§ã«ãªããŸãã äžèšã®æ°å€ã䜿çšããŠãã¹ããã圱é¿ãåããã«ãŒãã«ã§ã¯ã99msã®æžã蟌ã¿æéãé »ç¹ã«èŠãããŸãã 6msãè¶ ãããã®ã¯ãã¹ãŠåé¡ã§ãã
@nuruåé¡ãååšãããã©ãããèŠã€ããããã®ã¹ã¯ãªããã«æè¬ããŸãã
@justinsbããã©ã«ãã®kopsã€ã¡ãŒãžã«ãããããããã©ãããææ¡ããŠãã ãã
https://github.com/kubernetes/kops/blob/master/channels/stable
åé¡ãéããŸããïŒ https ïŒ
https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -617586330
æŽæ°ïŒkops 1.15ã€ã¡ãŒãžã§ãã¹ããå®è¡ããŸããããäžèŠãªã¹ããããªã³ã°ããããŸãhttps://github.com/kubernetes/kops/issues/8954#issuecomment -617673755
@Nuru
2020/04/22 11:02:48 [0] burn took 5ms, real time so far: 5ms, cpu time so far: 6ms
2020/04/22 11:02:49 [1] burn took 5ms, real time so far: 1012ms, cpu time so far: 12ms
2020/04/22 11:02:50 [2] burn took 5ms, real time so far: 2017ms, cpu time so far: 18ms
2020/04/22 11:02:51 [3] burn took 5ms, real time so far: 3023ms, cpu time so far: 23ms
2020/04/22 11:02:52 [4] burn took 5ms, real time so far: 4028ms, cpu time so far: 29ms
2020/04/22 11:02:53 [5] burn took 5ms, real time so far: 5033ms, cpu time so far: 35ms
2020/04/22 11:02:54 [6] burn took 5ms, real time so far: 6038ms, cpu time so far: 40ms
2020/04/22 11:02:55 [7] burn took 5ms, real time so far: 7043ms, cpu time so far: 46ms
2020/04/22 11:02:56 [8] burn took 5ms, real time so far: 8049ms, cpu time so far: 51ms
2020/04/22 11:02:57 [9] burn took 5ms, real time so far: 9054ms, cpu time so far: 57ms
2020/04/22 11:02:58 [10] burn took 5ms, real time so far: 10059ms, cpu time so far: 63ms
2020/04/22 11:02:59 [11] burn took 5ms, real time so far: 11064ms, cpu time so far: 69ms
2020/04/22 11:03:00 [12] burn took 5ms, real time so far: 12069ms, cpu time so far: 74ms
2020/04/22 11:03:01 [13] burn took 5ms, real time so far: 13074ms, cpu time so far: 80ms
2020/04/22 11:03:02 [14] burn took 5ms, real time so far: 14079ms, cpu time so far: 85ms
ãããã®çµæã¯
Linux <servername> 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ããã¯ãubuntu18.04ã®ããã©ã«ãã®ææ°ã®å®å®ããubuntuã«ãŒãã«ã§ãã
ã ãããããããããããã§ãã
@zerkms Ubuntu 18.04ã§ãã¹ããã©ãã§å®è¡ããŸãããïŒ ããããAzureã®ã«ãŒãã«ã«ããçµã¿èŸŒãŸããŠããªãããã«èŠããŸãã Ubuntu linux
ããã±ãŒãžã®ã©ãã«é©çšããããã瀺ããªãªãŒã¹ããŒããèŠã€ããããå
±æããŠãã ããã èŠã€ãããŸããã
ãã®ãã¹ãã§ã¯ãCoreOSã§ãåé¡ãåçŸã§ããªãã£ãããšã«ã泚æããŠãã ããã ããã©ã«ãèšå®ã§ã¯ãCFSã¹ã±ãžã¥ãŒãªã³ã°ãã°ããŒãã«ã«ç¡å¹ã«ãªã£ãŠããå¯èœæ§ããããŸãã
@Nuru
Ubuntu 18.04ã®ã©ãã§ãã¹ããå®è¡ããŸãããïŒ
ç§ã®ãµãŒããŒã®1ã€ã
ç§ã¯ãªãªãŒã¹ããŒãããã§ãã¯ããŸããã§ãããäœãæ¢ãã¹ããããããããŸããããããŠããã«ãããããããããã¯èª°ããæã£ãŠãããããªããã©ã«ãã®ã«ãŒãã«ã§ãã ð€·
ãããã¯ããubuntusã«ãŒãã«gitã«ããã¯ãã§ãïŒ
https://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/commit/?id=aadd794e744086fb50cdc752d54044fbc14d4adb
ãããŠããã«ããã«é¢ããubuntuã®ãã°ïŒ
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1832151
ãã€ãªããã¯ã§ãªãªãŒã¹ããå¿
èŠããããŸãã
apt-get source linux
ãå®è¡ããŠãããŠã³ããŒããããœãŒã¹ã³ãŒãããã§ãã¯ã€ã³ããããšã§ç¢ºèªã§ããŸãã
@zerkms ããã¹ããã©ãã§å®è¡ããŸãããããšã¯ããªãã£ã¹ã®ãµãŒããŒãGCPãAWSãAzureããŸãã¯ãã®ä»ã®å Žæã®ãµãŒããŒã§ãããïŒ
æããã«ãUbuntuãã©ã®ããã«é
åžããç¶æãããŠãããã«ã€ããŠç§ãç解ããŠããªãããšããããããããŸãã ç§ãããªãã®uname -a
åºåã«æ··ä¹±ããŠããŸãã UbuntuãªãªãŒã¹ããŒãã«ã¯æ¬¡ã®ããã«æžãããŠããŸãã
18.04.4ã«ã¯ã18.04.3ã®v5.0ããŒã¹ã®ã«ãŒãã«ããæŽæ°ãããv5.3ããŒã¹ã®Linuxã«ãŒãã«ãä»å±ããŠããŸãã
ãŸãã18.04.4ã2020幎2æ12æ¥ã«ãªãªãŒã¹ãããããšã瀺ããŠããŸããåºåã«ã¯ã2020幎4æ1æ¥ã«ã³ã³ãã€ã«ãããv4.15ã«ãŒãã«ãå®è¡ããŠããããšã瀺ãããŠããŸãã
@juliantaylorç§ã¯UbuntuãµãŒããŒãŸãã¯Gitãªããžããªã®ã³ããŒãæã£ãŠãããã aadd794e7440ã®ãããªç¹å®ã®ã³ããããå ¬éãããå®å®ããã«ãŒãã«ã«ãªã£ãå Žæã远跡ããæ¹æ³ãããããŸããã ãã®æ¹æ³ãæããŠããã ããã°å¹žãã§ãã
ã©ã³ããããã®ãã°ã³ã¡ã³ããèŠããšã
ãããããã®ç¹å®ã®ãããïŒ sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
ïŒã¯äžã«ãªã¹ããããŠããŸãã
ãŸãã Ubuntu18.04.4ãªãªãŒã¹ããŒãã«èšèŒãããŠããã1832151ãã衚瀺ãããŸããã
以åã®ã³ã¡ã³ãã§ã¯ã4.15.0-67.76ã§ããããé©çšãããŠlinux-image-4.15.0-67-generic
ããã±ãŒãžã衚瀺ãããŸããã
ç§ã¯Ubuntuã®å°é家ããé ãé¢ããŠããããã®ãããã®è¿œè·¡ã¯å®¹èªã§ããªãã»ã©é£ãããšæããŠããã®ã§ãç§ãèŠãéãã§ã¯ããã§ãã
ãã®ãããã18.04ã®çŸåšã®ããŒãžã§ã³ã§ããUbuntu18.04.4ã«å®éã«å«ãŸããŠãããšç§ã確信ããŠããªãçç±ãç解ããŠããã ããã°å¹žãã§ãã ç§ã®_æè¯ã®æšæž¬_ã¯ã18.04.4ããªãªãŒã¹ãããåŸã«ã«ãŒãã«æŽæ°ãšããŠãªãªãŒã¹ãããUbuntuã«ãŒãã«ã4.15.0-69以éãå ±åããå Žåã«å«ãŸããŠããå¯èœæ§ããããŸããã18.04.4ãããŠã³ããŒãããŠæŽæ°ããªãå Žåã¯ããããã¯ãããŸããã
ããŒã¿ã»ã³ã¿ãŒã®ãã¢ã¡ã¿ã«ãµãŒããŒã®ã«ãŒãã«4.15.0-72
ã§Goãã¹ãïŒéåžžã«äŸ¿å©ïŒãå®è¡ãããšãããããããé©çšãããŠããããã§ãã
2020/04/22 21:24:27 [0] burn took 5ms, real time so far: 5ms, cpu time so far: 7ms
2020/04/22 21:24:28 [1] burn took 5ms, real time so far: 1010ms, cpu time so far: 13ms
2020/04/22 21:24:29 [2] burn took 5ms, real time so far: 2015ms, cpu time so far: 20ms
2020/04/22 21:24:30 [3] burn took 5ms, real time so far: 3020ms, cpu time so far: 25ms
2020/04/22 21:24:31 [4] burn took 5ms, real time so far: 4025ms, cpu time so far: 32ms
2020/04/22 21:24:32 [5] burn took 5ms, real time so far: 5030ms, cpu time so far: 38ms
2020/04/22 21:24:33 [6] burn took 5ms, real time so far: 6036ms, cpu time so far: 43ms
2020/04/22 21:24:34 [7] burn took 5ms, real time so far: 7041ms, cpu time so far: 50ms
2020/04/22 21:24:35 [8] burn took 5ms, real time so far: 8046ms, cpu time so far: 56ms
2020/04/22 21:24:36 [9] burn took 5ms, real time so far: 9051ms, cpu time so far: 63ms
2020/04/22 21:24:37 [10] burn took 5ms, real time so far: 10056ms, cpu time so far: 68ms
2020/04/22 21:24:38 [11] burn took 5ms, real time so far: 11061ms, cpu time so far: 75ms
2020/04/22 21:24:39 [12] burn took 5ms, real time so far: 12067ms, cpu time so far: 81ms
2020/04/22 21:24:40 [13] burn took 5ms, real time so far: 13072ms, cpu time so far: 86ms
2020/04/22 21:24:41 [14] burn took 5ms, real time so far: 14077ms, cpu time so far: 94ms
ãŸããåãã¿ã€ãã®ãµãŒããŒã®ã«ãŒãã«4.9.164
ã§åãå®è¡ãè¡ããšã5ããªç§ä»¥äžã®æžã蟌ã¿ãçºçããããšãããããŸãã
2020/04/22 21:24:41 [0] burn took 97ms, real time so far: 97ms, cpu time so far: 8ms
2020/04/22 21:24:42 [1] burn took 5ms, real time so far: 1102ms, cpu time so far: 12ms
2020/04/22 21:24:43 [2] burn took 5ms, real time so far: 2107ms, cpu time so far: 16ms
2020/04/22 21:24:44 [3] burn took 5ms, real time so far: 3112ms, cpu time so far: 24ms
2020/04/22 21:24:45 [4] burn took 83ms, real time so far: 4197ms, cpu time so far: 28ms
2020/04/22 21:24:46 [5] burn took 5ms, real time so far: 5202ms, cpu time so far: 32ms
2020/04/22 21:24:47 [6] burn took 94ms, real time so far: 6297ms, cpu time so far: 36ms
2020/04/22 21:24:48 [7] burn took 99ms, real time so far: 7397ms, cpu time so far: 40ms
2020/04/22 21:24:49 [8] burn took 100ms, real time so far: 8497ms, cpu time so far: 44ms
2020/04/22 21:24:50 [9] burn took 5ms, real time so far: 9503ms, cpu time so far: 52ms
2020/04/22 21:24:51 [10] burn took 5ms, real time so far: 10508ms, cpu time so far: 60ms
2020/04/22 21:24:52 [11] burn took 5ms, real time so far: 11602ms, cpu time so far: 64ms
2020/04/22 21:24:53 [12] burn took 5ms, real time so far: 12607ms, cpu time so far: 72ms
2020/04/22 21:24:54 [13] burn took 5ms, real time so far: 13702ms, cpu time so far: 76ms
2020/04/22 21:24:55 [14] burn took 5ms, real time so far: 14707ms, cpu time so far: 80ms
ã ãããç§ã®åé¡ã¯ãã«ãŒãã«ã«ããããé©çšãããŠããããã«èŠããŠããCPUã¹ããããªã³ã°ããŸã 衚瀺ãããããšã§ã
@ãã«ãããããããªããã ããã¯ããªãã£ã¹ã§ãã¹ããããŠããç§ã®ãã¢ã¡ã¿ã«ãµãŒããŒã§ããã
ãŸãã18.04.4ã2020幎2æ12æ¥ã«ãªãªãŒã¹ãããããšã瀺ããŠããŸããåºåã«ã¯ã2020幎4æ1æ¥ã«ã³ã³ãã€ã«ãããv4.15ã«ãŒãã«ãå®è¡ããŠããããšã瀺ãããŠããŸãã
ããã¯ãµãŒããŒLTSã§ããããã§ããæ°ããã«ãŒãã«ã䜿çšããã«ã¯ãHWEãæ瀺çã«ãªããã€ã³ããå¿ èŠããããŸããããããªããšãã¡ã€ã³ã©ã€ã³ãå®è¡ããã ãã§ãã
ãŸããã¡ã€ã³ã©ã€ã³ã«ãŒãã«ãšHWEã«ãŒãã«ã®äž¡æ¹ãå®æçã«ãªãªãŒã¹ãããŠãããããæè¿ãã«ããããã«ãŒãã«ã䜿çšããããšã«çãã®äœå°ã¯ãããŸããïŒ http ïŒ
@zerkmsæ å ±ãããããšãã ç§ã¯æ··ä¹±ãããŸãŸã§ãããããã¯ç§ãæè²ããå Žæã§ã¯ãããŸããã
@ vgarcia-teã«ãŒãã«ã«ããããé©çšãããŠããå Žåã¯ããã®ãã°ãåå ã§ã¯ãªãããã§ãã ããªããèšããšããç§ã¯ããªãã®çšèªãããããŸããïŒ
ãªã¯ãšã¹ãã250mã«èšå®ãã500mã«å¶éããŠãçŽ50msã®äœ¿çšéã«ã€ããŠè©±ããŠããŸãã CPUæéã®çŽ50ïŒ ãæå¶ãããŠããã®ãããããŸããããã®å€ã¯äºæ³ãããã»ã©äœããåãå ¥ããããšãã§ããŸããïŒ
Kubernetes CPUãªãœãŒã¹ã¯CPUã§æž¬å®ããã1ã¯1ã€ã®ãã«CPUã®100ïŒ ãæå³ãã1mã¯1ã€ã®CPUã®0.1ïŒ ãæå³ããŸãã ãããã£ãŠãã500mãã®å¶éã¯ã0.5CPUãèš±å¯ãããšèšããŸãã
CFSã®ããã©ã«ãã®ã¹ã±ãžã¥ãŒãªã³ã°æéã¯100ããªç§ã§ãããããå¶éã0.5 CPUã«èšå®ãããšãããã»ã¹ã¯100ããªç§ããšã«50ããªç§ã®CPUã«å¶éãããŸãã ããã»ã¹ããããè¶ ããããšãããšãæå¶ãããŸãã éåžžãããã»ã¹ã1åã®ãã¹ã§50ããªç§ãè¶ ããŠå®è¡ãããå Žåã¯ãããã§ããé©åã«æ©èœããã¹ã±ãžã¥ãŒã©ãŒã«ãã£ãŠããã»ã¹ãæå¶ãããããšãæåŸ ãããŸãã
@Nuruã¯çã«ããªã£ãŠããŸãããããã©ã«ãã®CPUæéã100ããªç§ã
ããã¯ãããã©ã«ãã®CPUæéã100ããªç§ã§ããLinuxã§ã1åã®ãã¹ã§100ããªç§ãè¶
ããŠå®è¡ãããå¶éãããããã»ã¹ãæå¶ãããããšãæå³ããŸããïŒ
1åã®ãã¹ã§100ããªç§ä»¥äžãããããæ®ãã®æéã¯ã¢ã€ãã«ç¶æ ã§ããããã»ã¹ã®é©åãªå¶éæ§æã¯äœã§ããããã
@ vgarcia-teãå°ãã
ããã©ã«ãã®CPUæéã100ããªç§ã§ãããšãããšãããã»ã¹ã«1ã€ã®CPUãå²ãåœãŠãããå Žåããã®ããã»ã¹ã1åã®ãã¹ã§100ããªç§ãè¶ ããŠå®è¡ããããšãã¹ãããã«ãããŸããïŒ
ãã¡ãããã¹ã±ãžã¥ãŒãªã³ã°ã¯ãã¡ããã¡ãè€éãªã®ã§ãå®ç§ãªçããåºãããšã¯ã§ããŸããããåçŽåãããçãã¯ããŒã§ãã ãã詳现ãªèª¬æã¯ãããšããã«ãã
ãã¹ãŠã®UNIXããã»ã¹ã¯ãã¿ã€ã ã¹ã©ã€ã¹ã«åºã¥ãããªãšã³ããã£ãã¹ã±ãžã¥ãŒãªã³ã°ã®å¯Ÿè±¡ãšãªããŸãã ã·ã³ã°ã«ã³ã¢ã·ã³ã°ã«CPUã®æ代ã«æ»ããšã30åã®ããã»ã¹ããåæã«ãå®è¡ãããŠããŸããã äœãèµ·ããããšãããšã圌ãã¯ãã°ããèµ°ããç ãããã¿ã€ã ã¹ã©ã€ã¹ã®çµããã«ãäœãä»ã®ãã®ãèµ°ããããã«ä¿çã«ãããŸãã
ã¯ã©ãŒã¿ä»ãã®CFSã¯ããããããã«äžæ©é²ããŸãã
ãã ããããã»ã¹ã§CPUã®50ïŒ ã䜿çšããå¿ èŠããããšèšã£ãå Žåãå®éã«ã¯äœãèšã£ãŠããã®ã§ããããã 次ã®5åéãCPUããŸã£ããåäœããªãéããCPUã100ïŒ å æããŠ5åéã¯åé¡ãªããšèšã£ãŠããŸããïŒ ããã¯10åéã§50ïŒ ã®äœ¿çšéã«ãªããŸãããé 延ã®åé¡ããããããã»ãšãã©ã®äººã«ã¯åãå ¥ããããŸããã
ãããã£ãŠãCFSã¯ãã¯ã©ãŒã¿ãé©çšããæéæ ã§ãããCPUæéããå®çŸ©ããŸãã 4ã³ã¢ã§CPUåšæã100ããªç§ã®ãã·ã³ã§ã¯ãã¹ã±ãžã¥ãŒã©ãŒã«ã¯400ããªç§ã®CPUæéãããã100ããªç§ãè¶ ããå®æéïŒå®æéïŒãå²ãåœãŠãŸãã 䞊ååã§ããªãåäžã®å®è¡ã¹ã¬ãããå®è¡ããŠããå Žåããã®ã¹ã¬ããã¯1æéãããæ倧100ããªç§ã®CPUæéã䜿çšã§ããŸããããã¯ã1 CPUã®100ïŒ ã«ãªããŸãã ã¯ã©ãŒã¿ã1CPUã«èšå®ããå Žåãã¹ãããã«ãããããšã¯ãããŸããã
ã¯ã©ãŒã¿ã500mïŒ0.5 CPUïŒã«èšå®ãããšãããã»ã¹ã¯100msããšã«50msãå®è¡ããŸãã 100ããªç§ã®æéã¯50ããªç§æªæºã®äœ¿çšã§ãããã¹ãããã«ãããã¹ãã§ã¯ãããŸããã Ayn 100msæéã¯ã50msãå®è¡ããåŸã¯çµäºããã次ã®100msæéãŸã§ã¹ãããã«ãããŸãã ããã«ãããã¬ã€ãã³ã·ãŒïŒå®è¡ã§ããããã«ãªããŸã§åŸ æ©ããå¿ èŠãããæéïŒãšãã®ã³ã°ïŒä»ã®ããã»ã¹ãå®è¡ãããªãããã«ããããã«èš±å¯ãããæéïŒã®ãã©ã³ã¹ãç¶æãããŸãã
@Nuruç§ã®ã¹ã©ã€ãã¯æ£ããã§ãã ç§ã¯Ubuntuéçºè ã§ããããŸã*ïŒä»ã¯æãªãšãã ãã§ãïŒã æåã®çã¯ããœãŒã¹ãèªã¿ãgit blame + tag --containsããã§ãã¯ããŠãããããé¢å¿ã®ããã«ãŒãã«ã®ããŒãžã§ã³ã«å°éãããšãã远跡ããããšã§ãã
@chilukç§ã¯ããªãã®ã¹ã©ã€ããèŠãŠããŸããã§ããã ããããèŠãããšããªãä»ã®äººã®ããã«ãããã«åœŒãããããããã°ããåã«çéžãããšèšããšããã§ãïŒ
ã¬ã¬ã·ãŒã€ã³ã¹ããŒã«ããããŸããŸãªã«ãŒãã«ããµããŒãããŠãããããããŸããŸãªCFSã¹ã±ãžã¥ãŒã©ãŒã®ãã°ãç解ããå°ããªAWSãµãŒããŒã§æ©èœããä¿¡é Œæ§ã®é«ã解éãããããã¹ããèŠã€ããã®ã«ãŸã èŠåŽããŠããŸãã ã¿ã€ã ã©ã€ã³ãç解ããŠããã®ã§ã2014幎ã«Linuxã«ãŒãã«v3.16-rc1ã«ãã°ãå°å ¥ãããŸããã
[51f2176d74ac](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=51f2176d74ac) sched/fair: Fix unlocked reads of some cfs_b->quota/period
ãããã«ãããããŸããŸãªCFSã¹ããããªã³ã°ã®åé¡ãçºçããŸããã kops
Kubernetesã¯ã©ã¹ã¿ãŒã§èŠãããåé¡ã¯ã4.9ã«ãŒãã«ã䜿çšããŠããããããã®ãã°ãåå ã ã£ããšæããŸãã
51f2176d74ac
ã¯2018ã«ãŒãã«v4.18-rc4ã§ä¿®æ£ãããŸãã
[512ac999](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=512ac999d2755d2b7109e996a76b6fb8b888631d) sched/fair: Fix bandwidth timer clock drift condition
ããããããã¯ãã°@chilukãå°å ¥ããŸãã
[de53fd7ae](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425) sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
ãã¡ãããã«ãŒãã«ãããããã£ã¹ããªãã¥ãŒã·ã§ã³éã§è¿œè·¡ããã®ãé£ããã®ã¯ãChilukãä»ã®äººã®ããã§ã¯ãããŸããã ããããããã¯ç§ã«ãšã£ãŠãããããç¶ããç§ã®æ··ä¹±ã®äžå ãšãªã£ãŠããŸãã
ããšãã°ãDebuanãã¹ã¿ãŒ10ïŒAWS AMI debian-10-amd64-20191113-76
ïŒã§ã¯ãã«ãŒãã«ããŒãžã§ã³ã¯æ¬¡ã®ããã«å ±åãããŸãã
Linux ip-172-31-41-138 4.19.0-6-cloud-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux
ç§ã®ç¥ãéãããã®ã«ãŒãã«ã«ã¯51f2176d74ac
ããã 512ac999
ããªãã¯ããªã®ã§ã 512ac999
ã§èª¬æãããŠãããã¹ãã«å€±æããã¯ãã§ãããããã§ã¯ãããŸããã ïŒLinuxã«ãŒãã«4.10ãã段éçã«ã¢ããã°ã¬ãŒããããå€æŽãã°ã«ãã®ãããã«ã€ããŠã®èšåããªãããã 512ac999
ã¯ãªããšæããŸããïŒãã ãã4 cpu AWSVMã§ã¯å€±æããŸããã Chilukã®fibtest
ãŸãã¯Bobrikã®CFSãã«ãããã¹ãã¯ãäœãä»ã®ããšãèµ·ãã£ãŠããããšã瀺åããŠããŸãã
Chilukã®ããããåãåãåã§ããCoreOSã®ã¹ã±ãžã¥ãŒãªã³ã°ã®åé¡ãåçŸããã®ã«åæ§ã®åé¡ããããŸããã
çŸæç¹ã§ã®ç§ã®èãã§ã¯ãBobrikã®ãã¹ãã¯äž»ã«51f2176d74ac
ã®ãã¹ãã§ãããç§ã䜿çšããŠããDebianãã¹ã¿ãŒ10 AMIã«ã¯512ac999
ããããå€æŽãã°ã§æ瀺çã«åŒã³åºãããŠããŸããã fibtest
ã¯ãã³ã¢ãæ°åãããªããã·ã³ã§ã®æ床ã®é«ããã¹ãã§ã¯ãããŸããã
4ã³ã¢CPUã¯ãä¿®æ£ãããåé¡ãåçŸããã®ã«ååãªå€§ããã§ã¯ãªãå¯èœæ§ããããŸãã
chiluks kubeconããŒã¯ïŒhttps://www.youtube.com/watch?v=UE7QX98-kO0ïŒã®èª¬æãæ£ããç解ããŠããã°ã40CPU以äžã®å€§åãã·ã³ã§ã®ã¿åçŸã§ããã¯ãã§ãã
åšãã«ã¯ããããã®ã«ãŒãã«ããŒãžã§ã³ãããããããã®ãããé©çšãšå
ã«æ»ãããšãããããè¡ãããŠããŸãã å€æŽãã°ãšããŒãžã§ã³çªå·ã¯ããããŸã§ã®ãšããããåŸãããŸããã
çåãããå Žåã®å¯äžã®ä¿¡é Œã§ããæ¹æ³ã¯ããœãŒã¹ã³ãŒããããŠã³ããŒãããŠãããã«ãªã³ã¯ãããŠãããããã®å€æŽãšæ¯èŒããããšã§ãã
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥éæäœããªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã
SIG-ãã¹ããkubernetes /ãã¹ãã»ã€ã³ãã©ããã³/ãŸãã¯ãžã®ãã£ãŒãããã¯ãéä¿¡fejta ã
/ lifecycle stale
/ remove-lifecyclestale
ãã®ã¹ã¬ããã§åè¿°ãããã¹ãã§ã¯ãåé¡ãå®éã«åçŸããããšã¯ã§ããŸããïŒ5ããªç§ä»¥äžããããã0.01ïŒ çšåºŠã§ãïŒããcfsã¹ããããªã³ã°ã¡ããªãã¯ã¯ãäžçšåºŠã®ã¹ããããªã³ã°ã瀺ããŠããŸãã ã¯ã©ã¹ã¿éã§ã«ãŒãã«ããŒãžã§ã³ã¯ç°ãªããŸãããæãäžè¬çãª2ã€ã®ããŒãžã§ã³ã¯æ¬¡ã®ãšããã§ãã
Debian 4.19.67-2+deb10u2~bpo9+1 (2019-11-12)
5.4.38
æåããã¯ããŒããããã®ããŒãžã§ã³ã§äž¡æ¹ã®ãã°ãä¿®æ£ããããã©ããã¯ããããŸããããä¿®æ£ãããã¯ãã ãšæãã®ã§ããã¹ãã¯ããã»ã©åœ¹ã«ç«ããªãã®ã§ã¯ãªãããšæããŸãã 16ã³ã¢ãš36ã³ã¢ã®ãã·ã³ã§ãã¹ãããŠããŸããããã¹ããæå¹ã«ããããã«ããã«å€ãã®ã³ã¢ãå¿ èŠãã©ããã¯ããããŸãããããããã®ã¯ã©ã¹ã¿ãŒã§ã¹ãããã«ãçºçããŠããããšãããããŸã...
ãã®åé¡ãéããŠãåé¡ã«çŽé¢ããŠãã人ã ã«æ°ããåé¡ãéå§ããããã«äŸé Œããå¿ èŠããããŸããïŒ ããã§ã®ã¹ãã ã¯ãäŒè©±ãéåžžã«å°é£ã«ããå¯èœæ§ããããŸãã
^åæããŸãã ããã解決ããããã«å€ãã®ããšãè¡ãããŠããŸããã
/éãã
äžèšã®ã³ã¡ã³ãã«åºã¥ããŠããŸãã å¿ èŠã«å¿ããŠæ°ããå·ãéããŠãã ããã
@dims ïŒãã®åé¡ã解決ããŸãã
察å¿ããŠããã®ïŒ
/éãã
äžèšã®ã³ã¡ã³ãã«åºã¥ããŠããŸãã å¿ èŠã«å¿ããŠæ°ããå·ãéããŠãã ããã
PRã³ã¡ã³ãã䜿çšããŠç§ãšããåãããããã®æé ã¯ããã¡ãããå
¥æã§ãkubernetes / test-infraãªããžããªã«å¯ŸããŠåé¡ã
ãã®åé¡ã®ãã©ããŒã¢ããã®åé¡ãéç¥ããŠãã ãããããããã°ãåé¡ããµãã¹ã¯ã©ã€ããã人ã¯ããã©ããŒããæ°ããåé¡ããµãã¹ã¯ã©ã€ãã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
ãããã¯ä»æå 端ã«çéžããŸããã
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425
Torvaldã®ããªãŒã«å°éããããLinuxã«å®å®ããã€ã³ã¯ã«ãŒãžã§ã³ãç¶ããŠäž»èŠãªãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒRedhat / UbuntuïŒã«æåºããŸãã ä»ã®ããšã«é¢å¿ããããLinuxã«å®å®ãããããã«æºæ ããŠããªãå Žåã¯ãçŽæ¥éä¿¡ããããšããå§ãããŸãã