Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt maksymalnie obciążający serwer
koskitos
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 18.04.2004
Skąd: Z nikąd

Ostrzeżenie: (30%)
XX---


Witam!
Mam prośbę, gdyż testuję mój własny serwer.

Chciałbym na nim odpalić bardzo obciążający skrypt.
Niech to będzie obciążenie maksymalne i wszystkiego (najlepiej procesora - obliczenia oraz mysql - jakies ciezkie zapytania).
Wszystko w pętlę i już.

Jakie są funkcje mocno obciążające serwer?
Podajcie najlepiej jakiś kod.

Z góry dzięki za odpowiedzi!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
cicik
post
Post #2





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

Ostrzeżenie: (0%)
-----


Walnij sobie w bazie danych tabele z polem TEXT.
Wbij tam jakies 500 000 rekordow z dlugim teksetm i zrob zapytanie select * from tabela where pole like '%a%'

Potem kazdy wyniki zapytania potraktuj jakas funkcja typu eregi_replace, zrob to w dziesieciokrotnej petli i odpal 5 takich skryptow na raz. Idz na kawe, na spacer, wroc i sprawdz czy jest juz wynik i czy z komputera dym nie leci ;-)
Go to the top of the page
+Quote Post
alex19
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


A nie ma jakis gotowych rozwiazan do testowania wydajnosci serwerow?
W sumie to mi by sie tez przydalo cos do testowania wydajnosci. Bede instalowal system w jednej firmie na serwerze specjalnie do tego zakupionym, ale fajnie by bylo sie dowiedziec ile ten serwer moze pociagnac.
Najlepiej zeby mozna bylo okreslic stosunek pracujacych rownoczesnie uzytkownikow do wielkosci bazy danych. Nie zabardzo mi sie chce pisac jakis skryptow do testowania dlatego by sie przydalo cos gotowego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Dandelion
post
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 0
Dołączył: 27.01.2006

Ostrzeżenie: (0%)
-----


na chlopski rozum poprostu zrobic petle ktora nigdy sie nie konczy
Go to the top of the page
+Quote Post
alex19
post
Post #5





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


No, a co to da?? Jedynie moze zatluc serwer, a nic konkretnego nie pokaze.
Ja np bym chcial sie dowedziec ile serwer pociagnie rownoleglych polaczen, polaczeni z baza no i jak to sie bedzie rozkladalo przy bazie z 100 000 rekordow, a jak z milionem.
Go to the top of the page
+Quote Post
Adrian Staniszew...
post
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Takiegos czegos raczej nie znajdziesz. Z napisaniem tez bedzie ciezko, no ale moze Ci sie uda.. jak tak to pochwal sie co napisales (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

p.s
przyda sie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
NuLL
post
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


EZ Publisha sprobuj zainstalowac i uruchomic (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
alex19
post
Post #8





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


Domyslam sie ze by sie przydalo. Moze jedank ktos juz cos takiego napisal.
Ja nie zabardzo wiem jak sie zabrac za pisanie benchmarka dla serwera (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .

W sumie to mozna by napisac cos co by do bazy dodawalo po 10 000 rekordow, wykonywalo jakies operacje np z preg_replace i mierzylo czas wykonywania. Jest tylko jeszcze kewstia odpalania tego kilka razy rownoczesnie.
Go to the top of the page
+Quote Post
hwao
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Cytat(NuLL @ 21.11.2006, 16:34:18 ) *
EZ Publisha sprobuj zainstalowac i uruchomic (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)


Opieram, nie ma lepszego testu dla maszyny ;-)
Go to the top of the page
+Quote Post
Speedy
post
Post #10





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Jakiś czas temu próbowałem zainstalować ez publisha na localhoscie i mi się nie udało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , a nie mam wcale tak powolnego komputera (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
batman
post
Post #11





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli masz serwer na apache, to pewnie chodzi Ci o coś takiego: ab
Go to the top of the page
+Quote Post
alex19
post
Post #12





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


O to juz jest cos.
A jest jakis benchmark do MySQL'a?
Go to the top of the page
+Quote Post
batman
post
Post #13





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie używałem, więc nie wiem czy i jak działa (BTW pierwszy wynik na google)

MySQL AB
Go to the top of the page
+Quote Post
alex19
post
Post #14





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


No to teraz juz do szczescia potrzeba by tylko bnechmarka apacha razem z mysqlem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
batman
post
Post #15





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie wiem niestety czy jest takie narzędzie. Ale nie sądzę, by było Ci ono potrzebne, skoro masz oba powyższe.
Go to the top of the page
+Quote Post
alex19
post
Post #16





Grupa: Zarejestrowani
Postów: 172
Pomógł: 7
Dołączył: 23.12.2005
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


No ta, ale testownie apache i mysql razem bylo by najlepszym rozwiazaniem i najlepiej by odzwierciedlalo ile serwer pociagnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cadavre
post
Post #17





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Maks? Na szybko z palca:
  1. <?php
  2.  
  3. $time_start = date("H:m:s");
  4.  
  5. // baza danych
  6. $db_user = "";
  7. $db_password = "";
  8. $db_host = "localhost";
  9. $db_type = "MYISAM";
  10. mysql_connect($db_host,$db_user,$db_password);
  11. mysql_query("CREATE DATABASE `benchmark` DEFAULT CHARACTER SET utf8");
  12. mysql_select_db("benchmark");
  13.  
  14. $time_dbconnect = date("H:m:s");
  15.  
  16. $letters_array = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","w","v","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","W","V","X","Y","Z"," ");
  17.  
  18. for ($i=0;100000>$i;$i++) {
  19. $text_one .= $letters_array[(int)rand(1,count($letters_array))];
  20. }
  21.  
  22. $time_textone = date("H:m:s");
  23.  
  24. for ($i=0;50000>$i;$i++) {
  25. $text_two .= $letters_array[(int)rand(1,count($letters_array))];
  26. }
  27.  
  28. $time_texttwo = date("H:m:s");
  29.  
  30. for ($i=0;100>$i;$i++) {
  31. mysql_query("CREATE TABLE `table$i` (
  32. `text_one` LONGTEXT NOT NULL ,
  33. `text_two` LONGTEXT NOT NULL
  34. ) TYPE = $db_type");
  35. for ($x=0;1000>$x;$x++) {
  36. mysql_query("INSERT INTO `table$i` ( `text_one`,`text_two` ) VALUES ( '$text_one','$text_two' )");
  37. }
  38. }
  39.  
  40. $time_mysql = date("H:m:s");
  41.  
  42. for ($i=0;100>$i;$i++) {
  43. $query = mysql_query("SELECT `text_one` FROM `table$i`");
  44. while ($db_data = mysql_fetch_array($query)) {
  45. ${to_save.$i} = ereg_replace($letters_array[(int)rand(1,count($letters_array))],$letters_array[(int)rand(1,count($letters_array))],$db_data['text_one']);
  46. mysql_query("UPDATE `table$i` SET `text_one`='" . ${to_save.$i} . "'");
  47. }
  48. }
  49.  
  50. $time_finish = date("H:m:s");
  51.  
  52. echo "Start:" . $time_start . "<br>";
  53. echo "DB connect:" . $time_dbconnect . "<br>";
  54. echo "Text 100k:" . $time_textone . "<br>";
  55. echo "Text 50k:" . $time_texttwo . "<br>";
  56. echo "100x double sql_query:" . $time_mysql . "<br>";
  57. echo "Queries + reg replace = finish:" . $time_finish . "<br>";
  58.  
  59. ?>
Możesz pozmieniać wartości w pętlach. Troszkę skomplikowałem składnie gdzieniegdzie i inne "dodatki' typu fetch_array czy rand'y...

Powodzenia. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) BTW Nie zapomnij zrobić .htaccessa bądź zmienić w php.ini maksymalnego czasu wykonywania skryptu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:18