ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡΡ‚Π° Oracle ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° DTrace Π·Π° Linux 2.0.0-1.14

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ СкспСримСнталСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° инструмСнта Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ° DTrace Π·Π° Linux 2.0.0-1.14, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π² пространството Π½Π° потрСбитСля процСс, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ подсистСмата eBPF ΠΈ стандартнитС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° прослСдяванС, прСдоставяни ΠΎΡ‚ ядрото Π½Π° Linux. По функционалност, рСализацията Π½Π° DTrace Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° eBPF Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΏΡŠΡ€Π²Π°Ρ‚Π° рСализация Π½Π° DTrace Π·Π° Linux, Π½Π°ΠΏΡ€Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ» Π½Π° ядрото. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ лицСнзия GPLv2.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° с основни ядра Π½Π° Linux, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ BPF. Π—Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libctf с Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΎΡ‚Π»Π°Π΄ΡŠΡ‡Π½ΠΈΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CTF (Compact Type Format), която Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π° binutils, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ вСрсия 2.40, ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libdtrace-ctf, прСнСсСна ΠΎΡ‚ Solaris. По ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ са ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π²Π° ΠΏΠ°Ρ‚Ρ‡Π° Π·Π° ядро 6.7, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ ΠΈ ядрата.

ВСхнологията DTrace Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ прослСдяванС Π½Π° ядрата ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ прилоТСния Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Solaris. DTrace прСдоставя Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π΄Π΅Ρ‚Π°ΠΉΠ»Π½ΠΎ прослСдяванС Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° систСмата ΠΈ диагностика Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° DTrace Π½Π΅ влияС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° провСряванитС прилоТСния ΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Π²Π° влияниС Π½Π° тяхната производитСлност, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π°Π½Π°Π»ΠΈΠ· Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ систСми Π½Π° Π»Π΅Ρ‚Π΅ΠΆΠ°. Π‘Ρ€Π΅Π΄ силнитС страни Π½Π° DTrace сС отбСлязва високоязиковият Π΅Π·ΠΈΠΊ D, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° AWK, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-лСсно сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ сцСнарии Π·Π° прослСдяванС Π² сравнСниС с ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΈΡ‚Π΅ Π·Π° eBPF срСдства Π·Π° писанС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π΅Π·ΠΈΡ†ΠΈ C, Python ΠΈ Lua с външни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Основни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • Налични доставчици:
    • cpc (CPU Performance Counter) β€” ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация Π·Π° прСдставянСто.
    • dtrace β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ BEGIN, END ΠΈ ERROR, стартирани ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ»ΠΈ слСд Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ възникванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.
    • fbt (Function Boundary Tracing) β€” прослСдяванС Π½Π° обаТданията към ядрСни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • lockstat β€” прослСдяванС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.
    • pid β€” прослСдяванС Π½Π° обаТданията към Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² процСси, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² пространството Π½Π° потрСбитСля.
    • proc β€” прослСдяванС Π½Π° активността, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с процСситС, ΠΊΠ°Ρ‚ΠΎ стартиранС ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° (fork, exec, exit, fault).
    • profile β€” Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° статистика Π·Π° прСдставянСто ΠΏΡ€Π΅Π· Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅.
    • sdt, rawtp β€” статична трасировка Π½Π° ядрото (SDT β€” Statically Defined Tracing).
    • usdt: статична трасировка Π½Π° прилоТСния (USDT β€” Userspace Statically Defined Tracing)
    • sched β€” прослСдяванС Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСсурси Π½Π° CPU.
    • sycall β€” прослСдяванС Π½Π° Π²Ρ…ΠΎΠ΄Π° Π² систСмни ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π° ΠΎΡ‚ тях.
  • АгригиранС Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ: Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (avg, count, llquantize, lquantize, max, min, quantize, stddev ΠΈ sum) ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΈ дСйствия (clear, normalize, normalize, printa). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΈ асоциативни масиви.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° спСкулативна трасировка, позволяваща Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΎ прослСдяванС Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° ΠΊΠΎΠΈ ΠΎΡ‚ тях Π΄Π° сС фиксират Π² Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° трасировка ΠΈ ΠΊΠΎΠΈ Π΄Π° сС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΡ‚. Налични Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: speculation, speculate, commit ΠΈ discard.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, TLS (Thread-Local Storage), асоциативни масиви ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ: arg0 β€” arg9, args[], caller, curcpu, curthread, epid, errno, execname, gid, id, pid, ppid, probefunc, probemod, probename, probeprov, stackdepth, tid, timestamp, ucaller, uid, uregs[], ustackdepth, walltimestamp.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° дСйствия: exit, freopen, ftruncate, mod, printa, printf, raise, setopt, stack, sym, system, trace, tracemem, uaddr, umod, ustack ΠΈ usym.
  • НаличиС Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: alloca, basename, bcopy, copyin, copyinstr, copyinto, copyout, copyoutstr, dirname, getmajor, getminor, htonl, htonll, htons, index, inet_ntoa, lltostr, mutex_owned, mutex_owner, mutex_type_adaptive, mutex_type_spin, ntohl, ntohll, ntohs, progenyof, rand, rindex, rw_iswriter, rw_read_held, rw_write_held, strchr, strjoin, strlen, strrchr, strstr, strtok, substr.
  • НаличиС Π½Π° броячи Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π° Π² Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° трасировка.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° сцСнарии Π·Π° трасировка Π½Π° Π΅Π·ΠΈΠΊ D Π² Ρ„ΠΎΡ€ΠΌΠ° Π½Π° BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.
  • ΠŸΡ€Π΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ Π½Π° BPF Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ.
  • ΠžΠΏΡ†ΠΈΡ bpflog Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ Π·Π° вСрификация Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½ΠΈΡ‚Π΅ BPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.
  • Π”ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ прСдкомпилация Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.

ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π’ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° pid, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ Π·Π° прослСдяванС Π½Π° процСси Π² пространството Π½Π° потрСбитСля, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° прослСдяванС Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° инструкции ΠΏΠΎ тяхното мСстополоТСниС Π² ΠΊΠΎΠ΄Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ stack() ΠΈ ustack() Π·Π° агрСгация Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ ΠΎΡ‚ асоциативни масиви Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ всякакви Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ‡Ρ€Π΅Π· присвояванС Π½Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π» 0.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ дСйствиС print Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° структурирани Π΄Π°Π½Π½ΠΈ с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cleanpath(), d_path() ΠΈ link_ntop().
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Β«-xcpuΒ», ΠΊΠΎΠΉΡ‚ΠΎ позволява Π²Ρ€ΡŠΠ·ΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ CPU.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Β«-xlockmemΒ» Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° трасировка Π½Π° процСситС (USDT) ΠΌΠ΅ΠΆΠ΄Ρƒ рСстартирания Π½Π° dtprobed.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° BTF (BPF Type Format), прСдоставящ информация Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² псСвдокод Π½Π° BPF.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° скрипта configure Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster