Kubwerera m'mbuyo kwapezeka mu kernel ya Linux 7.0 komwe kumalepheretsa magwiridwe antchito a PostgreSQL.

Mainjiniya wa Amazon adapeza regression yeniyeni ya Linux kernel 7.0, yomwe ikuyembekezeka kutulutsidwa pa Epulo 13. Kusintha kwa makonda a ntchito kunapangitsa kuti kuchepa kwakukulu kwa throughput ndi reaction kuchepe kwambiri poyendetsa PostgreSQL pamakina a ARM64. Pogwiritsa ntchito kernel 7.0, magwiridwe antchito mu mayeso a pgbench "simple-update" adatsika pafupifupi kawiri, kuchoka pa 98565 kufika pa 50751.

Kuchepa kwa liwiro kunabwera chifukwa cha kusintha njira yoyambira yokonzekera nthawi yokonzekera kuchokera ku PREEMPT_NONE kupita ku PREEMPT_LAZY pa zomangamanga zomwe zimathandizira. Izi zinapangitsa PostgreSQL kugwiritsa ntchito 55% ya nthawi yake ya CPU kuyitana s_lock() pamalo ogwiritsa ntchito. Pofuna kuthetsa vutoli, tikupangira kuti PREEMPT_NONE ibwezeretsedwe ku njira yoyambira ndikuchotsa kulumikizana ndi ARCH_NO_PREEMPT.

Peter Zijlstra, wolemba za kusintha komwe kunayambitsa kubwereranso ndi wosamalira ntchito yokonza ndi ma kernel subsystem okhudzana ndi loko, anati kukonza kuyenera kuchitika mu PostgreSQL code. Pofuna kuthana ndi kuwonongeka kwa magwiridwe antchito, adalimbikitsa kugwiritsa ntchito "rseq slice" (Restartable Sequences) yowonjezera posachedwapa mu PostgreSQL kernel kuti achepetse mwayi woti chogwirira chichotsedwe.

Sizikudziwikabe kuti Linus Torvalds apanga chisankho chotani, chifukwa amatsatira mfundo yakuti kernel sayenera kuwononga magwiridwe antchito kapena kusokoneza kuyanjana kwa ogwiritsa ntchito ndi malo. Kumbali imodzi, kernel 7.0 ili mu gawo lomaliza loyesa isanatulutsidwe, ndipo kubwezeretsanso zoikamo za scheduler kungayambitse kubwereranso kwina. Kumbali ina, ogwiritsa ntchito amatha kuchepetsedwa ndi theka la magwiridwe antchito a database imodzi yotchuka kwambiri.

Source: opennet.ru

Kuwonjezera ndemanga