Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt maksymalnie obciążający serwer
koskitos
post 16.11.2006, 16:02:48
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!


--------------------
kOskiToS :D
Go to the top of the page
+Quote Post
cicik
post 16.11.2006, 16:26:26
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 ;-)


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post
alex19
post 21.11.2006, 02:39:33
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 smile.gif
Go to the top of the page
+Quote Post
Dandelion
post 21.11.2006, 15:19:33
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 21.11.2006, 15:39:18
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 21.11.2006, 16:31:43
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 winksmiley.jpg

p.s
przyda sie tongue.gif


--------------------
Programy antywirusowe
Komputery, internet
Twój Słownik OnLine
Go to the top of the page
+Quote Post
NuLL
post 21.11.2006, 16:34:18
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 biggrin.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
alex19
post 21.11.2006, 16:36:59
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 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 21.11.2006, 17:33:49
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 biggrin.gif


Opieram, nie ma lepszego testu dla maszyny ;-)
Go to the top of the page
+Quote Post
Speedy
post 21.11.2006, 18:41:13
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 tongue.gif, a nie mam wcale tak powolnego komputera winksmiley.jpg.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
batman
post 21.11.2006, 19:26:20
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


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
alex19
post 21.11.2006, 19:55:26
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 21.11.2006, 20:04:29
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


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
alex19
post 21.11.2006, 20:13:44
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 biggrin.gif
Go to the top of the page
+Quote Post
batman
post 21.11.2006, 21:27:02
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.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
alex19
post 21.11.2006, 22:05:55
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 smile.gif
Go to the top of the page
+Quote Post
cadavre
post 21.11.2006, 22:20:35
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. winksmiley.jpg BTW Nie zapomnij zrobić .htaccessa bądź zmienić w php.ini maksymalnego czasu wykonywania skryptu.


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 1.07.2025 - 16:25