Di kernela Linux 7.0 de paşveçûnek hatiye kifşkirin ku performansa PostgreSQL nîvî dike.

Endezyarekî Amazonê paşveçûnek taybetî ya kernel 7.0 ya Linuxê destnîşan kir, ku tê payîn di 13ê Nîsanê de were berdan. Guhertinek di mîhengên plansazkera peywirê de bû sedema kêmbûnek girîng di rêjeya derketinê û bersivdayînê de dema ku PostgreSQL li ser pergalên ARM64 tê xebitandin. Bi karanîna kernel 7.0, performansa di testa "simple-update" ya pgbench de hema hema du qat kêm bû, ji 98565 daket 50751.

Hêdîbûn ji ber guhertina moda pêşwextkirina plansazkerê ya xwerû ji PREEMPT_NONE bo PREEMPT_LAZY li ser mîmariyên ku wê piştgirî dikin çêbû. Ev yek bû sedem ku PostgreSQL %55ê dema CPU-ya xwe bi gazîkirina s_lock() di qada bikarhêner de derbas bike. Ji bo çareserkirina vê pirsgirêkê, tê pêşniyar kirin ku PREEMPT_NONE vegere rewşa xwerû û girêdana wê ji mîhenga ARCH_NO_PREEMPT veqetîne.

Peter Zijlstra, nivîskarê guhertinên ku bûn sedema paşveçûnê û parastvanê plansazkerê peywirê û jêrpergalên kernel ên têkildarî kilîtkirinê, diyar kir ku pêdivî ye ku çareseriyek di koda PostgreSQL de were bicîh kirin. Ji bo çareserkirina kêmbûna performansê, wî pêşniyar kir ku pêveka "rseq slice" (Restartable Sequences) ya ku vê dawiyê di kernel PostgreSQL de hatî zêdekirin were bikar anîn da ku îhtîmala derxistina xwediyê kilîtkirinê were sînordar kirin.

Hîn jî ne diyar e ku Linus Torvalds dê çi biryarê bide, ji ber ku ew bi prensîba ku kernel divê performansê xirab neke an jî lihevhatina cîhê bikarhêner têk neçe ve girêdayî ye. Ji aliyekî ve, kernel 7.0 di qonaxa ceribandina dawîn de berî berdanê ye, û vegerandina mîhengên plansazker dikare bibe sedema paşveçûnên din. Ji aliyê din ve, bikarhêner dikarin performansa yek ji databasên herî populer nîvî bikin.

Source: opennet.ru

Add a comment