google_cloud_logo

Всем привет!
Долгое время не доходили руки до публикации результатов этого теста. Вкратце — у Google есть собственный cloud computing с огромным количеством сервисов. По своим возможностям слегка напоминает Amazon AWS. А еще после привязки своей кредитной карты Гугл дает довольно щедрый бонус которого хватит на то чтобы полноценно протестировать все продукты — $300 на 60 дней.

Для тестов я поднял инстанс n1-standart-1 с 1 ядром и 3.75Gb RAM. Оплата здесь как и у амазона почасовая. Такой сервер стоит недешево. Если грузить его постоянно 30 дней то в конце месяца придется заплатить аж $45. Ну что же, давайте посмотрим что это за сервер.

Zone: europe-west1-c
Image: debian-7-wheezy-v20141108
Machine Type: n1-standard-1
phpMyAdmin Installed: true

Для начала замерим пинги и посмотрим traceroute из Ульяновска.

➜  ~  ping 146.148.123.179
PING 146.148.123.179 (146.148.123.179) 56(84) bytes of data.
64 bytes from 146.148.123.179: icmp_seq=1 ttl=43 time=83.3 ms
64 bytes from 146.148.123.179: icmp_seq=2 ttl=43 time=80.0 ms
64 bytes from 146.148.123.179: icmp_seq=3 ttl=43 time=80.0 ms
64 bytes from 146.148.123.179: icmp_seq=4 ttl=43 time=80.0 ms
64 bytes from 146.148.123.179: icmp_seq=5 ttl=43 time=80.6 ms
64 bytes from 146.148.123.179: icmp_seq=6 ttl=43 time=80.1 ms
64 bytes from 146.148.123.179: icmp_seq=7 ttl=43 time=80.0 ms
64 bytes from 146.148.123.179: icmp_seq=8 ttl=43 time=80.1 ms
64 bytes from 146.148.123.179: icmp_seq=9 ttl=43 time=80.0 ms
^C
--- 146.148.123.179 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8010ms
rtt min/avg/max/mdev = 80.043/80.505/83.333/1.075 ms
➜  ~  traceroute 146.148.123.179
traceroute to 146.148.123.179 (146.148.123.179), 30 hops max, 60 byte packets
 1  192.168.0.1 (192.168.0.1)  1.040 ms  1.148 ms  1.727 ms
 2  109.197.192.193 (109.197.192.193)  2.939 ms  3.274 ms  3.213 ms
 3  109.197.192.194 (109.197.192.194)  10.465 ms  10.402 ms  10.333 ms
 4  ASR--SW.evolife.su (109.197.192.83)  7.800 ms  7.757 ms  7.698 ms
 5  91.193.36.229 (91.193.36.229)  7.632 ms  7.576 ms  7.528 ms
 6  188.128.1.57 (188.128.1.57)  7.461 ms  2.069 ms  2.510 ms
 7  95.167.95.199 (95.167.95.199)  41.515 ms  41.448 ms  41.374 ms
 8  79.133.94.86 (79.133.94.86)  41.304 ms  41.232 ms  41.164 ms
 9  66.249.94.170 (66.249.94.170)  49.892 ms 72.14.233.106 (72.14.233.106)  77.334 ms  77.275 ms
10  209.85.240.102 (209.85.240.102)  59.090 ms  59.052 ms  58.996 ms
11  72.14.232.95 (72.14.232.95)  72.390 ms  72.364 ms  72.214 ms
12  216.239.51.202 (216.239.51.202)  88.255 ms 209.85.252.249 (209.85.252.249)  97.768 ms 209.85.244.211 (209.85.244.211)  80.815 ms
13  66.249.95.254 (66.249.95.254)  83.795 ms 216.239.47.83 (216.239.47.83)  83.792 ms 216.239.47.75 (216.239.47.75)  81.970 ms
14  * * *
15  179.123.148.146.bc.googleusercontent.com (146.148.123.179)  80.868 ms  80.783 ms  80.780 ms

К слову говоря до Hetzner пинги обычно около 40мс. Здесь же несмотря дажа на европейское расположение пинги в 2 раза выше.

Как мы видим здесь нам доступно 1 ядро Intel Xeon непонятной модели)

rail@lamp-ytaw:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 62
model name    : Intel(R) Xeon(R) CPU @ 2.50GHz
stepping    : 4
microcode    : 0x1
cpu MHz        : 2500.000
cache size    : 30720 KB
physical id    : 0
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 0
initial apicid    : 0
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 ht syscall nx pdpe1gb rdtscp lm constant_tsc up nopl xtopology pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm xsaveopt fsgsbase smep
bogomips    : 5000.00
clflush size    : 64
cache_alignment    : 64
address sizes    : 46 bits physical, 48 bits virtual
power management:

И 3.75Gb RAM

rail@lamp-ytaw:~$ cat /proc/meminfo
MemTotal:        3803632 kB
MemFree:         3389184 kB
Buffers:           25520 kB
Cached:           191360 kB
SwapCached:            0 kB
Active:           132528 kB
Inactive:         152008 kB
Active(anon):      69620 kB
Inactive(anon):      152 kB
Active(file):      62908 kB
Inactive(file):   151856 kB
Unevictable:        2296 kB
Mlocked:            2296 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               236 kB
Writeback:             0 kB
AnonPages:         69984 kB
Mapped:            19392 kB
Shmem:               200 kB
Slab:              44300 kB
SReclaimable:      36224 kB
SUnreclaim:         8076 kB
KernelStack:         704 kB
PageTables:         5180 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1901816 kB
Committed_AS:     510592 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       16600 kB
VmallocChunk:   34359721759 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       45048 kB
DirectMap2M:     2838528 kB
DirectMap1G:     1048576 kB

Здесь нам доступно два диска — 1 под корень и 1 под LAMP

rail@lamp-ytaw:~$ df -H
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                   11G  1.4G  8.8G  14% /
udev                                                     11M     0   11M   0% /dev
tmpfs                                                   390M  123k  390M   1% /run
/dev/disk/by-uuid/68c02a3a-9b6a-4dd0-b36b-6a93b5931ac0   11G  1.4G  8.8G  14% /
tmpfs                                                   5.3M     0  5.3M   0% /run/lock
tmpfs                                                   779M     0  779M   0% /run/shm
/dev/sdb                                                 22G  181M   20G   1% /lamp

Замерим скорость линейной записи на диск.

rail@lamp-ytaw:~$ 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, 14.8534 s, 72.3 MB/s
rail@lamp-ytaw:~$ cat /etc/issue
Debian GNU/Linux 7 \n \l

На самом деле получилось очень даже небыстро :/

Ну и результаты тестов sysbench для тех кому это интересно.

rail@lamp-ytaw:~$ 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:                          28.2590s
    total number of events:              10000
    total time taken by event execution: 28.2561
    per-request statistics:
         min:                                  2.72ms
         avg:                                  2.83ms
         max:                                 20.61ms
         approx.  95 percentile:               2.95ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   28.2561/0.00

rail@lamp-ytaw:~$ 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:                          1.9594s
    total number of events:              10000
    total time taken by event execution: 1.9568
    per-request statistics:
         min:                                  0.19ms
         avg:                                  0.20ms
         max:                                  7.55ms
         approx.  95 percentile:               0.22ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   1.9568/0.00
rail@lamp-ytaw:~$ 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.1543s
    total number of events:              64
    total time taken by event execution: 5.6164
    per-request statistics:
         min:                                  2.25ms
         avg:                                 87.76ms
         max:                                138.45ms
         approx.  95 percentile:             137.51ms

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   0.0878/0.04
rail@lamp-ytaw:~$ sysbench --test=memory --num-threads=4 --memory-total-size=2G 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: 2048M

Memory operations type: write
Memory scope type: global
Threads started!
Done.

Operations performed: 2097152 (1635809.35 ops/sec)

2048.00 MB transferred (1597.47 MB/sec)


Test execution summary:
    total time:                          1.2820s
    total number of events:              2097152
    total time taken by event execution: 3.9542
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.00ms
         max:                                 20.01ms
         approx.  95 percentile:               0.00ms

Threads fairness:
    events (avg/stddev):           524288.0000/1979.87
    execution time (avg/stddev):   0.9886/0.04
rail@lamp-ytaw:~$ 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...
rail@lamp-ytaw:~$ sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrw --max-time=300 --max-requests=0 runsysbench 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:  216960 Read, 144640 Write, 462724 Other = 824324 Total
Read 3.3105Gb  Written 2.207Gb  Total transferred 5.5176Gb  (18.833Mb/sec)
 1205.32 Requests/sec executed

Test execution summary:
    total time:                          300.0036s
    total number of events:              361600
    total time taken by event execution: 167.4883
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.46ms
         max:                                464.70ms
         approx.  95 percentile:               3.59ms

Threads fairness:
    events (avg/stddev):           361600.0000/0.00
    execution time (avg/stddev):   167.4883/0.00

Резюме:
На самом деле когда я тестировал этот сервис мне это делать было некогда и лень xD (предновогодние праздники были). В любом случае советую воспользоваться триальными 300 баксами и попробовать все гугловские сервисы самим. Можно даже выстроить собственную гибкую отказоустойчивую инфраструктуру на сервисах гугла. Кстати, чтобы потом не тратить деньги можно просто найти в панели пункт «Disable billing» и приостановить платные сервисы без удаления аккаунта. Аккаунт удалять не советую ибо из этой же консоли можно получать API-ключи для различных бесплатных гугловских сервисов таких как Youtube API например.