Як муҳандиси Amazon регрессияи хоси ядрои Linux 7.0-ро муайян кард, ки интизор меравад 13 апрел бароварда шавад. Тағйирот дар танзимоти банақшагирии вазифаҳо боиси коҳиши назарраси гузаронандагӣ ва вокуниш ҳангоми иҷрои PostgreSQL дар системаҳои ARM64 гардид. Бо истифода аз ядрои 7.0, самаранокӣ дар санҷиши "навсозии оддӣ"-и pgbench қариб ду маротиба коҳиш ёфт, аз 98565 то 50751.
Ин сустшавӣ аз сабаби иваз кардани ҳолати пешфарзии пешфарзии банақшагир аз PREAMPT_NONE ба PREAMPT_LAZY дар меъмориҳое, ки онро дастгирӣ мекунанд, ба вуҷуд омадааст. Ин боис шуд, ки PostgreSQL 55% вақти CPU-и худро барои даъват кардани s_lock() дар фазои корбарӣ сарф кунад. Барои ҳалли ин мушкилот, пешниҳод карда мешавад, ки PREEMPT_NONE ба ҳолати пешфарз баргардонида шавад ва онро аз танзимоти ARCH_NO_PREEMPT ҷудо кунанд.
Питер Зийлстра, муаллифи тағйироте, ки боиси регрессия шуданд ва нигоҳдорандаи зерсистемаҳои ядрои марбут ба банақшагири вазифаҳо ва қулф, изҳор дошт, ки бояд дар рамзи PostgreSQL ислоҳе татбиқ карда шавад. Барои ҳалли пастравии самаранокӣ, ӯ тавсия дод, ки васеъкунии ба наздикӣ иловашудаи "rseq slice" (Restartable Sequences) дар ядрои PostgreSQL барои маҳдуд кардани эҳтимолияти хориҷшавии дорандаи қулф истифода шавад.
Ҳанӯз маълум нест, ки Линус Торвалдс чӣ қарор қабул хоҳад кард, зеро ӯ ба принсипе риоя мекунад, ки ядро набояд самаранокиро паст кунад ё мутобиқати фазои корбарро вайрон накунад. Аз як тараф, ядрои 7.0 пеш аз баровардан дар марҳилаи ниҳоии санҷиш қарор дорад ва баргардонидани танзимоти банақшагир метавонад ба дигар регрессияҳо оварда расонад. Аз тарафи дигар, корбарон метавонанд нисф шудани самаранокии яке аз маъмултарин пойгоҳҳои додаҳоро эҳсос кунанд.
Манбаъ: opennet.ru
