Π’ ядрС Linux 7.0 выявили Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΡŽ, Π² Π΄Π²Π° Ρ€Π°Π·Π° ΡΠ½ΠΈΠΆΠ°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ PostgreSQL

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Amazon выявил Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΡŽ, ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΡƒΡŽ для ядра Linux 7.0, Ρ€Π΅Π»ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ оТидаСтся 13 апрСля. ИзмСнСниС настроСк ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ сущСствСнному сниТСнию пропускной способности ΠΈ отзывчивости ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π‘Π£Π‘Π” PostgreSQL Π½Π° систСмах с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ARM64. ΠŸΡ€ΠΈ использовании ядра 7.0 ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ тСста pgbench Β«simple-updateΒ» снизились ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π° β€” с 98565 Π΄ΠΎ 50751.

Π—Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ° вытСснСния (preemption) Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с PREEMPT_NONE Π½Π° PREEMPT_LAZY Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС PostgreSQL стал Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 55% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ CPU Π½Π° Π²Ρ‹Π·ΠΎΠ² s_lock(). Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌ PREEMPT_NONE ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ привязку ΠΊ настройкС ARCH_NO_PREEMPT.

ΠŸΠΈΡ‚Π΅Ρ€ ЗСйлстра (Peter Zijlstra), Π°Π²Ρ‚ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° рСгрСссия, ΠΈ мэйнтСйнСр ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΈ связанных с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ подсистСм ядра, заявил, Ρ‡Ρ‚ΠΎ исправлСниС Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄ PostgreSQL. Для устранСния падСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ посовСтовал Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² PostgreSQL Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π² ядро Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Β«rseq sliceΒ» (Restartable Sequences) для ограничСния вСроятности вытСснСния дСрТатСля Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Пока Π½Π΅ ясно ΠΊΠ°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ придСрТиваСтся ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ядро Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π»ΠΎΠΌΠ°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с пространством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны ядро 7.0 находится Π½Π° Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ стадии тСстирования ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ настроСк ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСгрСссиям, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Π΄Π²ΡƒΡ…ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ сниТСниСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных Π‘Π£Π‘Π”.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ