Rychlost hostingů, s Nette i bez něj

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
knyttl
Člen | 196
+
0
-

Ahoj,

vybírám teď pro sebe nový hosting a zajímá mě, kde jste hostovaní ostatní. Konkrétně by mě zajímala rychlost; napsal jsem krátký skript (těžko říct, jak moc o něčem vypovídá, třeba jej můžeme rozvinout), kterým ty rychlosti „odhaduji“: https://gist.github.com/1155460

Zatím vítězí Onebit (hosting PROFI), kde průměrný čas je 0.31s.

U mě na 2GHz DualCore běží v consoli 0.54s,

Hosting Savana 2000, 0.85s.

Když se podělíte o časy na jiných hostinzích, budu rád.

Vojtěch

Editoval knyttl (19. 8. 2011 12:05)

Filip Procházka
Moderator | 4668
+
0
-

Myslím, že to o ničem nevypovídá. Spusť ten script v různých denních dobách přes ab a pak to možná bude malinko reálné.

knyttl
Člen | 196
+
0
-

Zkoušel jsem to v různých denních dobách a vždy víceméně stejné, rozdíly jen v setinách milisekund.

Ot@s
Backer | 476
+
0
-

Nebylo by od věci spáchat nějaký komplexnější benchmark doplněný o test rychlosti databáze (via nepovinné DSN) a filesystému (k vůli keši). Večer spustím tvůj test na WeDOSu a písnu výsledek.

knyttl
Člen | 196
+
0
-

Supr. Jak chceš testovat tu databázi a FS?

nanuqcz
Člen | 822
+
0
-

Na ten Wedos jsem zvědavý :-)

U mě na Savana 500 pokaždé 3.79 sec (a nějaké drobné k tomu :-D)

Ot@s
Backer | 476
+
0
-

knyttl napsal(a):

Supr. Jak chceš testovat tu databázi a FS?

Jen v rychlosti…

Test DB:

class Stamp {
        var $stamps = array();

        function startBlock($key='total') {
                $this->stamps[$key] = microtime(true);
        }

        function stopBlock($key='total') {
                $this->stamps[$key] = microtime(true) - $this->stamps[$key];
        }

        function getResult() {
                return $this->stamps;
        }
}

$s = new Stamp();

$s->startBlock();

// pripojeni k DB
$s->startBlock('db_connection');
$db = new PDO("mysql:host=localhost;dbname=test", 'test', 'test');
$s->stopBlock('db_connection');

// zalozeni + naplneni testovaci tabulky
$s->startBlock('sql_create_table');
$db->query('CREATE OR REPLACE TABLE bench (id INT AUTO_INCREMENT PRIMARY KEY, value VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL)');
for($i=1;$i<10000;$i++) {
        $db->query("INSERT INTO bench(value) VALUES('.md5($i).')");
}
$s->stopBlock('sql_create_table');

// cas pro "zotaveni" systemu
sleep(1);

// test na SELECTy
$s->startBlock('sql_select_from_table');
$rows = $db->query("SELECT * FROM bench WHERE id>5000");
$s->stopBlock('sql_select_from_table');

// uklid ... nemusime merit
$db->query('DROP TABLE bench');

$s->stopBlock();

// vysledky
print_r( $s->getResult() );

Test FS:

$s->startBlock();

// vytvoreni CSV souboru
$s->startBlock('fs_create_file');
$fp = fopen('tmp/tmp.csv', 'w');
for($i=1;$i<10000;$i++) {
	fwrite($fp, $i.";".md5($i)."\n");
}
fclose($fp);
$s->stopBlock('fs_create_file');

// cteni CSV
$s->startBlock('fs_read_file');
$fp = fopen("tmp/tmp.csv", "r");
$myarray = array();
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
	$myarray[ $data[0] ] = $data[1];
}
unset($myarray);
fclose($fc);
$s->stopBlock('fs_read_file');

$s->stopBlock();

// a vysledky
print_r( $s->getResult() );

Editoval Ot@s (19. 8. 2011 12:38)

knyttl
Člen | 196
+
0
-

Velice pěkné, dnes vyzkouším a výsledky sem dám.

Patrik Votoček
Člen | 2221
+
0
-

Rychlost PHP, DB a FS nehraje takovou roli jako rychlost odezvy (tj i cesta dat po síti). Měly by jste proto své testy spouštět přes AB jak říká HosipLan.

Pavel Kouřil
Člen | 128
+
0
-

Ne že by to mělo reálnou výpovědní hodnotu, ale station.cz 0.48 sec :)

Ot@s
Backer | 476
+
0
-

Patrik Votoček napsal(a):

Rychlost PHP, DB a FS nehraje takovou roli jako rychlost odezvy (tj i cesta dat po síti).

Takhle bych ty priority nestavěl. Konektivita providerů už dnes nebývá problém (jestli něco, tak dostupnost udávaná v % a tu stejně obyčejný smrtelník objektivně nezměří). Největší problém, dle mé letité zkušenosti, jsou „zasekané“ hostingové servery hned následované podivnými konfiguracemi v php.ini (kolik hosterů nabízí u svých produktů odkaz na phpinfo()?). A to ani nemluvím o technické podpoře, která otráví i jinak dobrý hosting.

Patrik Votoček
Člen | 2221
+
0
-

Ad dostupnost ta je dnes v podstatě všude stejná. Ad konektivita no tak jasné to zase není jsou české hostingové společnosti, které mají servery reálně v zahraničí takže je odezva delší.

Zasekané servery, podivná konfigurace a technická podpora jsou taky aspekty na které by se při výběru hostingu měl brát ohled. Nicméně je to věc, která se v tomto vláknu neřeší proto jsem jí nezmiňoval.

Ot@s
Backer | 476
+
0
-

Ebola.cz, tarif Ebola Multi START: Average time of 10 iterations: 0.344 seconds.

Active24.cz, tarif ?: Average time of 10 iterations: 0.620 seconds.

Forpsi.cz, tarif ?: Average time of 10 iterations: 0.897 seconds.

Forpsi.cz – jina IP serveru, tarif ?: Average time of 10 iterations: 0.633 seconds.

Cesky-hosting.cz, tarif ?: Average time of 10 iterations: 0.504 seconds.

Arachne.cz :-D, tarif ? : Average time of 10 iterations: –0.0629 seconds.

Editoval Ot@s (19. 8. 2011 16:58)

Filip Procházka
Moderator | 4668
+
0
-

Tomu ab, jde nastavit zasílání více požadavků najednou a taky množství. Doporučil bych hodnoty trochu zvednout než na 1 a 10 :)

knyttl
Člen | 196
+
0
-

Ot@s napsal(a):

Ebola.cz, tarif Ebola Multi START: Average time of 10 iterations: 0.344 seconds.

Co máš na té ebole? Jak to tam celkově funguje? Zkoušel jsi na to to ‚ab‘?

knyttl
Člen | 196
+
0
-

Zkusil jsem tedy z toho kodu odstranit těch deset iterací a iteroval 100× přes to ‚ab‘:

ab -n 100 http://web/…enchmark.php

Onebit:

Concurrency Level:      1
Time taken for tests:   50.015 seconds
Complete requests:      100
Failed requests:        13
   (Connect: 0, Receive: 0, Length: 13, Exceptions: 0)
Write errors:           0
Total transferred:      23986 bytes
HTML transferred:       9886 bytes
Requests per second:    2.00 [#/sec] (mean)
Time per request:       500.148 [ms] (mean)
Time per request:       500.148 [ms] (mean, across all concurrent requests)
Transfer rate:          0.47 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       28   30   1.3     30      39
Processing:   337  470 357.4    380    3391
Waiting:      337  436 201.6    380    1486
Total:        367  500 357.4    410    3421

Percentage of the requests served within a certain time (ms)
  50%    410
  66%    411
  75%    453
  80%    511
  90%    577
  95%   1228
  98%   1516
  99%   3421
 100%   3421 (longest request)

Savana:

Concurrency Level:      1
Time taken for tests:   87.757 seconds
Complete requests:      100
Failed requests:        8
   (Connect: 0, Receive: 0, Length: 8, Exceptions: 0)
Write errors:           0
Total transferred:      19290 bytes
HTML transferred:       1390 bytes
Requests per second:    1.14 [#/sec] (mean)
Time per request:       877.575 [ms] (mean)
Time per request:       877.575 [ms] (mean, across all concurrent requests)
Transfer rate:          0.21 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       25   27   3.9     26      64
Processing:   715  850  55.0    882     969
Waiting:      715  850  55.0    882     969
Total:        742  878  54.8    909     996

Percentage of the requests served within a certain time (ms)
  50%    909
  66%    921
  75%    922
  80%    922
  90%    923
  95%    941
  98%    967
  99%    996
 100%    996 (longest request)

Editoval knyttl (19. 8. 2011 21:37)