Steal: ΠΊΡ‚ΠΎ ΠΊΡ€Π°Π΄Ρ‘Ρ‚ Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ процСссорноС врСмя

Steal: ΠΊΡ‚ΠΎ ΠΊΡ€Π°Π΄Ρ‘Ρ‚ Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ процСссорноС врСмя

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π₯ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ простым языком ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅ возникновСния steal Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ исслСдовании, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‚Π΅Ρ…Π΄ΠΈΡ€Ρƒ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Mail.ru Cloud Solutions. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° KVM.

CPU steal time β€” это врСмя, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ рСсурсы процСссора для своСго выполнСния. Π­Ρ‚ΠΎ врСмя считаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² гостСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Π² срСдах Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΊΡƒΠ΄Π° Π΄Π΅Π²Π°ΡŽΡ‚ΡΡ эти самыС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ рСсурсы, ΠΊΠ°ΠΊ ΠΈ Π² ΠΆΠΈΠ·Π½ΠΈ, вСсьма Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹. Но ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Π΄Π°ΠΆΠ΅ поставили Ρ†Π΅Π»Ρ‹ΠΉ ряд экспСримСнтов. НС Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всё Π·Π½Π°Π΅ΠΌ ΠΎ steal, Π½ΠΎ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ интСрСсноС сСйчас расскаТСм.

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ steal

Π˜Ρ‚Π°ΠΊ, steal β€” это ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для процСссов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Как описано Π² ΠΏΠ°Ρ‚Ρ‡Π΅ ядра KVM, steal β€” это врСмя, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ выполняСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Π½Π° хостовой ОБ, хотя ΠΎΠ½ поставил процСсс Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, steal считаСтся ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° процСсс Π³ΠΎΡ‚ΠΎΠ² Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° процСссу Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ процСссорноС врСмя.

ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ steal ядро Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°. ΠŸΡ€ΠΈ этом Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ Π½Π΅ уточняСт, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΎΠ½ выполняСт, просто Β«ΠΏΠΎΠΊΠ° занят, Ρ‚Π΅Π±Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ΡƒΒ». На KVM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° подсчёта steal Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΠΏΠ°Ρ‚Ρ‡Π°Ρ…. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² здСсь Π΄Π²Π°:

  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΡƒΠ·Π½Π°Ρ‘Ρ‚ ΠΎ steal ΠΎΡ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, для процСссов Π½Π° самой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ΅ это нСпрямоС ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ искаТСниям.
  • Π“ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ Π½Π΅ дСлится с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ½ занят β€” Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ удСляСт врСмя Π΅ΠΉ. Из-Π·Π° этого сама Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ искаТСния Π² ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ steal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… процСссов.

2. Π§Ρ‚ΠΎ влияСт Π½Π° steal

2.1. ВычислСниС steal

По сути, steal считаСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ врСмя ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссора. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ считаСтся утилизация, Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. НавСрноС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ считаСт этот вопрос ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ. Но здСсь Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ. Для ознакомлСния с этим процСссом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ Brendann Gregg: Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ ΠΊΡƒΡ‡Π΅ нюансов ΠΏΡ€ΠΈ расчСтС ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎ ситуациях, ΠΊΠΎΠ³Π΄Π° этот подсчёт Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  • ΠŸΠ΅Ρ€Π΅Π³Ρ€Π΅Π² процСссора, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΡ‚Ρ‹.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ турбобуста, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ измСняСтся тактовая частота процСссора.
  • ИзмСнСниС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, происходящСС ΠΏΡ€ΠΈ использовании Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ энСргосбСрСТСния процСссора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SpeedStep.
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° подсчёта срСднСго: ΠΎΡ†Π΅Π½ΠΊΠ° ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ 80 % ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ бурст Π² 100 %.
  • ЦикличСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (spin lock) ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ процСссор ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ процСсс Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ продвиТСния ΠΏΠΎ своСму Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ расчётная утилизация процСссора процСссом Π±ΡƒΠ΄Π΅Ρ‚ стопроцСнтной, хотя физичСски процСссорноС врСмя процСсс ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ подсчёт для steal, я Π½Π΅ нашСл (Ссли Π·Π½Π°Π΅Ρ‚Π΅ β€” ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π² коммСнтариях). Но, судя ΠΏΠΎ исходникам, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ расчёта Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π² ядрС добавляСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ счётчик, нСпосрСдствСнно для процСсса KVM (процСсса Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прСбывания процСсса KVM Π² состоянии оТидания процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ Π±Π΅Ρ€Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ процСссорС ΠΈΠ· Π΅Π³ΠΎ спСцификации ΠΈ смотрит, всС Π»ΠΈ Π΅Π³ΠΎ Ρ‚ΠΈΠΊΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ процСссом Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ. Если всС, Ρ‚ΠΎ считаСм, Ρ‡Ρ‚ΠΎ процСссор занимался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссом Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ ΠΈΠ½ΠΎΠΌ случаС ΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ процСссор занимался Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘, появился steal.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ подсчёта steal ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Ρ‚Π΅ΠΌ ΠΆΠ΅ самым ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ подсчёт ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ. НС ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ часто, Π½ΠΎ выглядят ΠΎΠ±Π΅ΡΠΊΡƒΡ€Π°ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅.

2.2. Π’ΠΈΠΏΡ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° KVM

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ KVM. ΠžΡ‚ Ρ‚ΠΈΠΏΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ возникновСния steal.

Врансляция. Π’ этом случаС Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с физичСскими устройствами Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° происходит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  1. ГостСвая опСрационная систСма посылаСт своСму гостСвому устройству ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.
  2. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ гостСвого устройства ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ запрос для BIOS устройства ΠΈ отправляСт Π΅Ρ‘ Π² Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€.
  3. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для физичСского устройства, дСлая Π΅Ρ‘, Π² Ρ‚ΠΎΠΌ числС, Π±ΠΎΠ»Π΅Π΅ бСзопасной.
  4. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ физичСского устройства ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ отправляСт Π΅Ρ‘ ΡƒΠΆΠ΅ Π² само физичСскоС устройство.
  5. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡƒΡ‚ΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ трансляции Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любоС устройство ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Но Π·Π° это приходится Ρ€Π°ΡΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, быстродСйствиСм.

Аппаратная виртуализация. Π’ этом случаС устройство Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ самый быстрый ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ. Но, ΠΊ соТалСнию, ΠΎΠ½ поддСрТиваСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСми физичСскими устройствами, Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°ΠΌΠΈ ΠΈ гостСвыми ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠ°ΠΌΠΈ. На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ основныС устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, β€” это процСссоры.

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ (paravirtualization). Π‘Π°ΠΌΡ‹ΠΉ распространённый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ устройств Π½Π° KVM ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ самый распространСнный Ρ€Π΅ΠΆΠΈΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для гостСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ подсистСмами Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с сСтСвым ΠΈΠ»ΠΈ дисковым стСком) ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ страниц памяти происходит с использованиСм API Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°, Π±Π΅Π· трансляции Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НСдостаток этого способа Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ядра гостСвой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого API. Но ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π·Π° счСт установки ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π½Π° Π³ΠΎΡΡ‚Π΅Π²ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму. Π’ KVM это API называСтся virtio API.

ΠŸΡ€ΠΈ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с трансляциСй, ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ физичСского устройства Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСтся Π·Π° счёт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² процСсс Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Π½Π° хостС. Π­Ρ‚ΠΎ позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх инструкций Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ KVM Π·Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ virtio API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… устройств, Π²Ρ€ΠΎΠ΄Π΅ сСтСвого ΠΈΠ»ΠΈ дискового Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°. ИмСнно поэтому Π²Π½ΡƒΡ‚Ρ€ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ставятся virtio-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹.

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ сторона Ρ‚Π°ΠΊΠΎΠ³ΠΎ ускорСния β€” Π½Π΅ всС процСссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Ρ‘. Π­Ρ‚ΠΎ создаёт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ спСцэффСкты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ появлСнию Π½Π° steal. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ этого вопроса Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ с An API for virtual I/O: virtio.

2.3. Β«Π‘ΠΏΡ€Π°Π²Π΅Π΄Π»ΠΈΠ²Ρ‹ΠΉΒ» ΡˆΠ΅Π΄ΡƒΠ»ΠΈΠ½Π³

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ являСтся, фактичСски, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ процСссом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подчиняСтся Π·Π°ΠΊΠΎΠ½Π°ΠΌ ΡˆΠ΅Π΄ΡƒΠ»ΠΈΠ½Π³Π° (распрСдСлСния рСсурсов ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами) Π² ядрС Linux, поэтому рассмотрим Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’ Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ CFS, Completely Fair Scheduler, начиная с ядра 2.6.23 ΡΡ‚Π°Π²ΡˆΠΈΠΉ диспСтчСром ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с этим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Linux Kernel Architecture ΠΈΠ»ΠΈ исходники. Π‘ΡƒΡ‚ΡŒ CFS Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² распрСдСлСнии процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Π² зависимости ΠΎΡ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡ… выполнСния. Π§Π΅ΠΌ большС процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ процСсс, Ρ‚Π΅ΠΌ мСньшС этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ «чСстноС» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх процСссов β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ процСсс Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π» всС процСссоры постоянно, ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ процСссы Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ.

Иногда такая ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ интСрСсным Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌ. Π”Π°Π²Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Linux навСрняка помнят Π·Π°ΠΌΠΈΡ€Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π° дСсктопС Π²ΠΎ врСмя запуска рСсурсоСмких ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° компилятора. Π’Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ нСрСсурсоСмкиС Π·Π°Π΄Π°Ρ‡ΠΈ дСсктопных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰ΠΈΠΌΠΈ рСсурсы, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ компилятор. CFS считаСт, Ρ‡Ρ‚ΠΎ это нСчСстно, поэтому пСриодичСски останавливаСт тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Π΄Π°Ρ‘Ρ‚ процСссору ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ компилятора. Π­Ρ‚ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° sched_autogroup, Π½ΠΎ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ особСнности распрСдСлСния процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. БобствСнно, это рассказ Π½Π΅ ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ всё ΠΏΠ»ΠΎΡ…ΠΎ Π² CFS, Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ «чСстноС» распрСдСлСниС процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” Π½Π΅ самая Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π°.

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€Π΅ β€” preemption. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π³Π½Π°Ρ‚ΡŒ Π·Π°ΠΆΡ€Π°Π²ΡˆΠΈΠΉΡΡ процСсс с процСссора ΠΈ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ изгнания называСтся context switching, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста процСссора. ΠŸΡ€ΠΈ этом сохраняСтся вСсь контСкст таски: состояниС стСка, рСгистры ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅, послС Ρ‡Π΅Π³ΠΎ процСсс отправляСтся ΠΆΠ΄Π°Ρ‚ΡŒ, Π° Π½Π° Π΅Π³ΠΎ мСсто встаСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ дорогая опСрация для ОБ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ½Π° Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ ΠΏΠΎ сути Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² Π½Π΅ΠΉ Π½Π΅Ρ‚. ЧастоС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π² ОБ, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΎ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ ΠΈ Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ особСнно Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

Π’Π°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ рассказ Π½ΡƒΠΆΠ΅Π½ для объяснСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°: Ρ‡Π΅ΠΌ большС рСсурсов процСссора пытаСтся ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚ΡŒ процСсс Π² чСстном ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€Π΅ Linux, Ρ‚Π΅ΠΌ быстрСС ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ остановлСн, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ это ΠΈΠ»ΠΈ Π½Π΅Ρ‚ β€” слоТный вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ Windows Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€ Π±Ρ‹Π» ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ дСсктопных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π²ΠΈΡΠ°Ρ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ процСссы. Π’ Sun Solaris Π±Ρ‹Π»ΠΎ ΠΏΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€ΠΎΠ². Когда запустили Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ΠΎΠΉ, Fair share scheduler, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Solaris Zones Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ этого вопроса Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΊΠ½ΠΈΠ³ Π²Ρ€ΠΎΠ΄Π΅ Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture ΠΈΠ»ΠΈ Understanding the Linux Kernel.

2.4. Как ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ steal?

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ steal Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ, просто: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹ΠΌ срСдством съСма ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ процСссора. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° Π±Ρ‹Π»Π° Π½Π° Linux. Windows ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ своим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ прСдоставляСт. πŸ™

Steal: ΠΊΡ‚ΠΎ ΠΊΡ€Π°Π΄Ρ‘Ρ‚ Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ процСссорноС врСмя
Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ top: дСтализация Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° процСссор, Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ β€” steal

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°. МоТно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ steal Π½Π° хостовой машинС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Load Average (LA) β€” усрСднСнного значСния количСства процСссов, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° подсчёта этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° нСпростая, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ, Ссли ΠΏΡ€ΠΎΠ½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ количСству ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² процСссора LA большС 1, это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСрвСр с линуксом Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½.

Π§Π΅Π³ΠΎ ΠΆΠ΅ ΠΆΠ΄ΡƒΡ‚ всС эти процСссы? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ β€” процСссора. Но ΠΎΡ‚Π²Π΅Ρ‚ Π½Π΅ совсСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° процСссор свободСн, Π° LA Π·Π°ΡˆΠΊΠ°Π»ΠΈΠ²Π°Π΅Ρ‚. ВспомнитС, ΠΊΠ°ΠΊ отваливаСтся NFS ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ этом растёт LA. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ с диском, ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройством Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. Но Π½Π° самом Π΄Π΅Π»Π΅, процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ окончания любой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΊΠ°ΠΊ физичСской, связанной с устройством Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΈ логичСской, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°. Π’ΡƒΠ΄Π° ΠΆΠ΅ относятся Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΆΠ΅Π»Π΅Π·Π° (Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ диска), ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΊΡƒΠ΄Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΡƒΡ‡Π° сущностСй, mutex adaptive ΠΈ spin, semaphores, condition variables, rw locks, ipc locks…).

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ LA Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ считаСтся ΠΊΠ°ΠΊ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, 100 процСссов ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», ΠΈ Ρ‚ΠΎΠ³Π΄Π° LA=50. Π’Π°ΠΊΠΎΠ΅ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, казалось Π±Ρ‹, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠ΅ ΠΏΠ»ΠΎΡ…ΠΎ. Но для ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΡ€ΠΈΠ²ΠΎ написанного ΠΊΠΎΠ΄Π° это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ состояниСм, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅ΠΌΡƒ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠ΅ Π½Π΅ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚.

Из-Π·Π° этого усрСднСния (ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π΅ мСньшС, Ρ‡Π΅ΠΌ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ ΠΏΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ LA β€” Π½Π΅ самоС Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΠ΅ занятиС, с вСсьма Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… случаях. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π½Π° Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… доступных рСсурсах описаны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС простыС кСйсы, Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ объяснСния процСсса. ВсСх ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, сюда, ΠΊ Brendann Gregg Β β€” Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ссылкам. ΠšΠΎΠΌΡƒ лСнь Π½Π° английском β€” ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π΅Π³ΠΎ популярной ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΎ LA.

3. БпСцэффСкты

Π’Π΅ΠΏΠ΅Ρ€ΡŒ остановимся Π½Π° основных кСйсах появлСния steal, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ. РасскаТу, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΈΠ· всСго Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΠΊ соотносятся с показатСлями Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅.

ΠŸΠ΅Ρ€Π΅ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡ. Π‘Π°ΠΌΠΎΠ΅ простоС ΠΈ частоС: Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ, большоС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ процСссора Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ…, большая конкурСнция, утилизация ΠΏΠΎ LA большС 1 (Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΠΎ процСссорным Ρ‚Ρ€Π΅Π΄Π°ΠΌ). Π’Π½ΡƒΡ‚Ρ€ΠΈ всСх Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ всё Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚. Steal, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΆΠ΅ растёт, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈΠ»ΠΈ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, всё Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈ понятно.

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΡ… инстансов. На Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ ΠΎΠ΄Π½Π° СдинствСнная Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°, ΠΎΠ½Π° потрСбляСт Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ, Π½ΠΎ Π΄Π°Ρ‘Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ Π²Π²ΠΎΠ΄Ρƒ/Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ диску. И ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π² Π½Π΅ΠΉ появляСтся нСбольшой steal, Π΄ΠΎ 10 % (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ нСсколько ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… экспСримСнтов).

Π‘Π»ΡƒΡ‡Π°ΠΉ интСрСсный. Steal Ρ‚ΡƒΡ‚ появляСтся ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π’Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ создаётся ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, обрабатываСтся Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€. Из-Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ это выглядит ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ запрос, ΠΎΠ½Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ исполнСнию ΠΈ ΠΆΠ΄Ρ‘Ρ‚ процСссора, Π½ΠΎ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅ΠΉ Π½Π΅ Π΄Π°ΡŽΡ‚. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это врСмя ΡƒΠΊΡ€Π°Π΄Π΅Π½ΠΎ.

Π­Ρ‚ΠΎ происходит Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΎΠ½ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² kernel space Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°, ΠΈ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ. Π₯отя, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ сразу Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ расчёта steal это врСмя считаСтся ΡƒΠΊΡ€Π°Π΄Π΅Π½Π½Ρ‹ΠΌ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π² этой ситуации ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΈΡ…-Π½ΠΈΠ±ΡƒΠ΄ΡŒ sys calls), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π¨Π΅Π΄ΡƒΠ»Π΅Ρ€ ΠΏΡ€ΠΎΡ‚ΠΈΠ² высоконагруТСнных Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ. Когда ΠΎΠ΄Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° страдаСт ΠΎΡ‚ steal большС Π΄Ρ€ΡƒΠ³ΠΈΡ…, это связано ΠΊΠ°ΠΊ Ρ€Π°Π· с ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€ΠΎΠΌ. Π§Π΅ΠΌ сильнСС процСсс Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ процСссор, Ρ‚Π΅ΠΌ скорСС ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€ Π΅Π³ΠΎ Π²Ρ‹Π³ΠΎΠ½ΠΈΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Если Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° потрСбляСт Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ steal: Π΅Ρ‘ процСсс чСстно сидСл ΠΈ ΠΆΠ΄Π°Π», Π½Π°Π΄ΠΎ Π΅ΠΌΡƒ Π΄Π°Π²Π°Ρ‚ΡŒ побольшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ всСм своим ядрам, Π΅Ρ‘ Ρ‡Π°Ρ‰Π΅ Π²Ρ‹Π³ΠΎΠ½ΡΡŽΡ‚ с процСссора ΠΈ ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π½Π΅ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π•Ρ‰Ρ‘ Ρ…ΡƒΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° процСссы Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π·Π°ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС процСссора, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ³Π΄Π° опСрационная систСма Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅, Π·Π° счёт чСстной ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ всё мСньшС процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎΡ‚ процСсс происходит Π»Π°Π²ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ, ΠΈ steal подскакиваСт Π΄ΠΎ нСбСс, хотя ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ. И Ρ‡Π΅ΠΌ большС ядСр, Ρ‚Π΅ΠΌ Ρ…ΡƒΠΆΠ΅ попавшСй ΠΏΠΎΠ΄ Ρ€Π°Π·Π΄Π°Ρ‡Ρƒ машинС. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, большС всСго ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ высоконагруТСнныС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ со мноТСством ядСр.

Низкий LA, Π½ΠΎ Π΅ΡΡ‚ΡŒ steal. Если LA ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 0,7 (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€, каТСтся Π½Π΅Π΄ΠΎΠ·Π°Π³Ρ€ΡƒΠΆΠ΅Π½), Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ steal:

  • Π£ΠΆΠ΅ описанный Π²Ρ‹ΡˆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° steal, хотя Ρƒ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° всё Ρ…ΠΎΡ€ΠΎΡˆΠΎ. По Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π½Π°ΡˆΠΈΡ… экспСримСнтов, Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ steal Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10 % ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сущСствСнного влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ.
  • НСвСрно считаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ LA. Π’ΠΎΡ‡Π½Π΅Π΅, Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½ считаСтся Π²Π΅Ρ€Π½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ усрСднСнии Π·Π° ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ получаСтся Π·Π°Π½ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΌ. НапримСр, Ссли ΠΎΠ΄Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° потрСбляСт всС свои процСссоры Ρ€ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ»ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ‚ΠΎ LA Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 0,15; Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π΄Π°Π΄ΡƒΡ‚ 0,6. А Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π» Π΄ΠΈΠΊΠΈΠΉ steal ΠΏΠΎΠ΄ 25 % ΠΏΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ LA, ΡƒΠΆΠ΅ Π½Π΅ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ.
  • ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΈΠ·-Π·Π° ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€Π°, Ρ€Π΅ΡˆΠΈΠ²ΡˆΠ΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ Сст, ΠΈ ΠΏΡƒΡΡ‚ΡŒ этот ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Ρ‘Ρ‚. А я ΠΏΠΎΠΊΠ° ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡŽ контСкст, ΠΏΠΎΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ прСрывания ΠΈ Π·Π°ΠΉΠΌΡƒΡΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ систСмными Π²Π΅Ρ‰Π°ΠΌΠΈ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ΄Π½ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ Π½Π΅ видят Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

4. Π”Ρ€ΡƒΠ³ΠΈΠ΅ искаТСния

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для искаТСний чСстной ΠΎΡ‚Π΄Π°Ρ‡ΠΈ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ΅. НапримСр, слоТности Π² расчёты вносят Π³ΠΈΠΏΠ΅Ρ€Ρ‚Ρ€Π΅Π΄ΠΈΠ½Π³ ΠΈ NUMA. Они ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹Π±ΠΎΡ€ ядра для исполнСния процСсса, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ коэффициСнты β€” вСса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ контСкста Π΄Π΅Π»Π°ΡŽΡ‚ подсчёт Π΅Ρ‰Ρ‘ слоТнСС.

Π‘Ρ‹Π²Π°ΡŽΡ‚ искаТСния ΠΈΠ·-Π·Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ‚ΠΈΠΏΠ° турбобуста ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ€Π΅ΠΆΠΈΠΌΠ° энСргосбСрСТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ подсчётС ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ искусствСнно ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°Ρ‚ΡŒ частоту ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠ²Π°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° сСрвСрС. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ турбобуста ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСссорного Ρ‚Ρ€Π΅Π΄Π° ΠΈΠ·-Π·Π° увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ информация ΠΎΠ± Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ частотС процСссора Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π½Π΅ пСрСдаётся, ΠΈ ΠΎΠ½Π° считаСт, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ врСмя ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ‚Ρ‹Ρ€ΠΈΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»Π° 2 Π“Π“Ρ†, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π²Π΄Π²ΠΎΠ΅ мСньшС).

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΠΏΡ€ΠΈΡ‡ΠΈΠ½ искаТСний ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ с ΠΊΠ½ΠΈΠ³, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π΄Π°Π» Π»ΠΈΠ½ΠΊΠΈ Π²Ρ‹ΡˆΠ΅, ΠΈ съСма статистики с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° perf, sysdig, systemtap, ΠΊΠΎΠΈΡ… дСсятки.

5. Π’Ρ‹Π²ΠΎΠ΄Ρ‹

  1. КакоС-Ρ‚ΠΎ количСство steal ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π° ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΏΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ эта Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 5-10 %. Зависит ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠ½Π° Π΄Π°Ρ‘Ρ‚ Π½Π° свои физичСскиС устройства. Π’ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ сСбя Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽΡ‚ прилоТСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ.
  2. Π‘ΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ ΠΈ steal Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ Π½Π΅ всСгда ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ взаимосвязаны, ΠΎΠ±Π΅ ΠΎΡ†Π΅Π½ΠΊΠΈ steal ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ситуациях ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ….
  3. Π¨Π΅Π΄ΡƒΠ»Π΅Ρ€ ΠΏΠ»ΠΎΡ…ΠΎ относится ΠΊ процСссам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΎ просят. Он стараСтся Π΄Π°Π²Π°Ρ‚ΡŒ мСньшС Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ просит большС. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ β€” Π·Π»ΠΎ.
  4. НСбольшой steal ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠΎΠΉ ΠΈ Π±Π΅Π· ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ, особСнностСй Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сосСдСй, распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ Ρ‚Ρ€Π΅Π΄Π°ΠΌ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²).
  5. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ steal Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмС, приходится ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. ΠžΡ‚ Π»ΡŽΠ±Ρ‹Ρ… кСйсов Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ отклонСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π΄Π΅Π±Π°Π³Π΅Ρ€Π΅ ядра.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com