Выпуск cache-bench 0.1.0 для исслСдования эффСктивности ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти

cache-bench — это Python скрипт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ влияниС настроСк Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ…) Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния Π·Π°Π΄Π°Ρ‡, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ΠΎΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния Π² условиях Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти. Код ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ CC0.

Основной способ использования — считываниС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² случайном порядкС ΠΈ ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² список, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ считано Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число ΠΌΠ΅Π±ΠΈΠ±Π°ΠΉΡ‚. Доступно Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  • ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ — Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ — слуТит для создания Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ°. ΠŸΡ€ΠΈ этом Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ создаётся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ число ΠΌΠ΅Π±ΠΈΠ±Π°ΠΉΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² со случайными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
  • Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ — основной — Ρ€Π΅ΠΆΠΈΠΌ чтСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² случайном порядкС. Π’ΠΎ врСмя чтСния растёт объСм потрСбляСмой скриптом памяти, Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ считывания Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² зависит ΠΎΡ‚ ΠΎΠ±ΡŠΡ‘ΠΌΠ° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… страниц.

Π§Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скрипт drop-cache, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ тСста. Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния выводится ΠΎΠ±Ρ‰Π΅Π΅ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, срСдняя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния, имя послСднСго считанного Ρ„Π°ΠΉΠ»Π°. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ„Π°ΠΉΠ» с ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

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

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