UPD 2021: Если зарегистрируетесь по моей ссылке то получите 100$ на 60 дней для тестирования сервисов DigitalOcean.
Немного о сервисе
С этим сервисом я знаком уже довольно давно, еще с тех времен когда они только запускались в начале 2012 года. Популярность этот хостинг-провайдер обрел благодаря огромному количеству промокодов с внушительными суммами и щедрой партнерской программе. Даже у меня за 1.5 года рефка так просто прокачала на $100. А ведь я знаю людей у кого благодаря партнерской программе висит по $1000.
Впрочем и сам сервис был практически первым настолько удобным. Время от регистрации на сайте и до запуска первого сервера проходит всего пара минут. При этом сервера на технологии виртуализации KVM и даже на самых минимальных тарифах обладают довольно высокой производительностью.
За все время у меня локнули только 1 VPS когда на него прилетел мощный DDoS. Да и то прислали письмо с вежливыми извинениями. Также они славятся довольно приятным клиентским сервисом. Бывает что в честь каких то памятных дат накидывают немного денег на баланс, а если долгое время не пользоваться сервисом то также прибавляют сумму на балансе и шлют письма с вежливыми вопросами в стиле «Быть может вам что-то не понравилось?».
Хотя с развитием сервиса правила немного ужесточились. Теперь к примеру нет возможности выводить партнерские деньги на Paypal (раньше такая возможность была) и принимают уже далеко не все кредитные карты (раньше прокатывали Qiwi Virtual и прочие Кукурузы).
Панель управления
Первым делом после регистрации нам нужно активировать биллинг для возможности создания новых серверов.
Это можно сделать либо привязав свою кредитную карту либо сделав оплату с Paypal.
Вот так выглядит приглашение к созданию дролпетов (виртуальные сервера в терминологии DO) после активации биллинга:

Вот так выглядит выбор тарифа, ДЦ и предустановленного образа. Кстати с недавних пор также есть возможность выбрать образ с FreeBSD.

А еще можно выбрать образы с предустановленными приложениями:

Создание нового сервера за 55 секунд:

Панель управления запущенным сервером:

Здесь можно сменить тариф на более дорогой, можно подключаться к консоли прямо в браузере и делать снапшоты.
За +20% от стоимости сервера можно включить его автоматические бэкапы. Раньше это кстати было бесплатно, но из-за хитрецов которые решили так бесплатно хранить огромные объемы данных за резервное копирование стали взымать плату.

Подробная инструкция о том как создавать SSH-ключи и для чего они нужны:

Панель для генерации API-ключей. Кстати на днях вышла вторая версия DigitalOcean API. Если правильно использовать API то можно рулить своей инфраструктурой в автоматическом режиме. В этом плане сервис немного похож на Amazon AWS. Правда возможности более скромные.

Управление DNS и PTR-записями:

Еще стоит упомянуть DigitalOcean Community куда можно присылать свои статьи с инструкциями по настройке серверного ПО. За хорошие статьи они платят где-то 100-200 долларов.
Тестирование сервера
Традиционно для тестов я взял сервер на самом минимальном тарифе (1 ядро, 512 мегабайт ОЗУ и 20 гигабайт SSD за 5$ в месяц). Сервер взял в ДЦ AMS-3.
На сервере установлена последняя Ubuntu LTS:
root@test:~# cat /etc/issue Ubuntu 14.04.1 LTS \n \l
Здесь нам доступно 1 ядро Intel Xeon E502630L
root@test:~# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 45 model name : Intel(R) Xeon(R) CPU E5-2630L 0 @ 2.00GHz stepping : 7 microcode : 0x1 cpu MHz : 1999.999 cache size : 15360 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fdiv_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm xsaveopt vnmi ept tsc_adjust bogomips : 3999.99 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
И 512Mb RAM
root@test:~# cat /proc/meminfo MemTotal: 507256 kB MemFree: 6736 kB Buffers: 6464 kB Cached: 460256 kB SwapCached: 0 kB Active: 76896 kB Inactive: 396960 kB Active(anon): 7224 kB Inactive(anon): 236 kB Active(file): 69672 kB Inactive(file): 396724 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 507256 kB LowFree: 6736 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 32 kB Writeback: 0 kB AnonPages: 7136 kB Mapped: 5764 kB Shmem: 324 kB Slab: 19216 kB SReclaimable: 14412 kB SUnreclaim: 4804 kB KernelStack: 528 kB PageTables: 460 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 253628 kB Committed_AS: 39616 kB VmallocTotal: 512000 kB VmallocUsed: 6280 kB VmallocChunk: 500292 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 28664 kB DirectMap2M: 495616 kB
Вот что нам рассказывает Inxi
root@test:~# inxi -b
System: Host: test Kernel: 3.13.0-37-generic i686 (32 bit) Console: tty 0 Distro: Ubuntu 14.04 trusty
Machine: System: Bochs product: Bochs
Mobo: N/A model: N/A Bios: Bochs version: Bochs date: 01/01/2011
CPU: Single core Intel Xeon CPU E5-2630L 0 (-MCP-) clocked at 1999.999 MHz
Graphics: Card: Cirrus Logic GD 5446 X-Vendor: N/A driver: N/A tty size: 134x20 Advanced Data: N/A for root out of X
Network: Card: Red Hat Virtio network device driver: virtio-pci
Drives: HDD Total Size: 21.5GB (13.5% used)
Info: Processes: 65 Uptime: 7 min Memory: 37.2/495.4MB Runlevel: 2 Client: Shell (bash) inxi: 1.9.17
Для начала замерим скорость линейной записи на диск и увидим впечатляющие 527 мегабайт/сек!
root@test:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync 16384+0 records in 16384+0 records out 1073741824 bytes (1.1 GB) copied, 2.03905 s, 527 MB/s
Пинги из Ульяновска до Амстердама
➜ www git:(master) ping 188.166.51.86 PING 188.166.51.86 (188.166.51.86) 56(84) bytes of data. 64 bytes from 188.166.51.86: icmp_seq=1 ttl=56 time=72.9 ms 64 bytes from 188.166.51.86: icmp_seq=2 ttl=56 time=71.5 ms 64 bytes from 188.166.51.86: icmp_seq=3 ttl=56 time=71.8 ms 64 bytes from 188.166.51.86: icmp_seq=4 ttl=56 time=71.8 ms 64 bytes from 188.166.51.86: icmp_seq=5 ttl=56 time=71.4 ms 64 bytes from 188.166.51.86: icmp_seq=6 ttl=56 time=72.7 ms 64 bytes from 188.166.51.86: icmp_seq=7 ttl=56 time=72.3 ms 64 bytes from 188.166.51.86: icmp_seq=8 ttl=56 time=73.4 ms ^C --- 188.166.51.86 ping statistics --- 8 packets transmitted, 8 received, 0% packet loss, time 7004ms rtt min/avg/max/mdev = 71.486/72.269/73.417/0.724 ms
Далее идут скучные тесты Sysbench
root@test:~# sysbench --test=cpu --cpu-max-prime=20000 --num-threads=1 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 39.0694s
total number of events: 10000
total time taken by event execution: 39.0649
per-request statistics:
min: 3.08ms
avg: 3.91ms
max: 8.46ms
approx. 95 percentile: 4.42ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 39.0649/0.00
root@test:~# sysbench --test=threads --thread-locks=1 --max-time=20s run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing thread subsystem performance test
Thread yields per test: 1000 Locks used: 1
Threads started!
Done.
Test execution summary:
total time: 5.0218s
total number of events: 10000
total time taken by event execution: 5.0154
per-request statistics:
min: 0.48ms
avg: 0.50ms
max: 1.00ms
approx. 95 percentile: 0.68ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 5.0154/0.00
root@test:~# sysbench --test=mutex --num-threads=64 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 64
Doing mutex performance test
Threads started!
Done.
Test execution summary:
total time: 0.2671s
total number of events: 64
total time taken by event execution: 9.6812
per-request statistics:
min: 3.77ms
avg: 151.27ms
max: 260.00ms
approx. 95 percentile: 228.47ms
Threads fairness:
events (avg/stddev): 1.0000/0.00
execution time (avg/stddev): 0.1513/0.07
root@test:~# sysbench --test=memory --num-threads=4 --memory-total-size=512M run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Doing memory operations speed test
Memory block size: 1K
Memory transfer size: 512M
Memory operations type: write
Memory scope type: global
Threads started!
Done.
Operations performed: 524288 (725162.30 ops/sec)
512.00 MB transferred (708.17 MB/sec)
Test execution summary:
total time: 0.7230s
total number of events: 524288
total time taken by event execution: 2.2786
per-request statistics:
min: 0.00ms
avg: 0.00ms
max: 12.04ms
approx. 95 percentile: 0.00ms
Threads fairness:
events (avg/stddev): 131072.0000/3658.43
execution time (avg/stddev): 0.5697/0.03
root@test:~# sysbench --test=fileio --file-total-size=4G prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
128 files, 32768Kb each, 4096Mb total
Creating files for the test...
root@test:~#
root@test:~# sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrw --max-time=300 --max-requests=0 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
128 files, 32Mb each
4Gb total file size
Block size 16Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Time limit exceeded, exiting...
Done.
Operations performed: 662304 Read, 441536 Write, 1412864 Other = 2516704 Total
Read 10.106Gb Written 6.7373Gb Total transferred 16.843Gb (57.49Mb/sec)
3679.39 Requests/sec executed
Test execution summary:
total time: 300.0063s
total number of events: 1103840
total time taken by event execution: 125.3469
per-request statistics:
min: 0.00ms
avg: 0.11ms
max: 18.84ms
approx. 95 percentile: 0.24ms
Threads fairness:
events (avg/stddev): 1103840.0000/0.00
execution time (avg/stddev): 125.3469/0.00
И результаты теста Serverbear.
Резюме
Это достаточно серьезный сервис с производительными недорогими серверами и большим количеством локаций включая даже такую экзотику как Сингапур. Хотя у Vultr (клона DO) локаций побольше, но DigitalOcean несравненно популярнее.
Всячески рекомендую его и для разработки и для продакшна. Сам частенько здесь поднимаю тестовые сервера. Пару раз хостил довольно тяжелые сайты с большой посещалкой – никаких проблем не было.
Напоследок вот вам моя рефка с вашими халявными $10 на счет =)
UPD 2021: Если зарегистрируетесь по моей ссылке то получите 100$ на 60 дней для тестирования сервисов DigitalOcean.





