Eigene TPL engine Bench
Snoop 28.03.2003 -
13:33 865
5
Snoop
Here to stay
|
Ich habe mir gestern eine TPL engine geschrieben, die den anschein hat wirklich schnell zu sein, nur um sicher zu sein würde ich gerne meine Zeiten mit den eurigen vergleichen. Bei mehr als tausend Datensätzen [1014] und einen absichtlich langsamen SELECT Befehl -> [ "SELECT * FROM news WHERE user = '96' ORDER BY id DESC LIMIT 0,15"] wobei die news mit user = 96 sehr rar sind bzw ziemlich verteilt hatte ich eine Rendertime von : 0.009766 Sec Ich bitte um Vergleiche, damit ich meine Engine vielleicht noch optimieren kann 
|
Guest
Deleted User
|
mit deiner Rendertime lieferst du nichts brauchbares um einen Vergleich anstellen zu können.
|
jives
And the science gets done
|
Um sauber vergleichen zu können muss man imo immer die selben Zugriffe simulieren, nur eben mit anderen Engines. Also einen irgendwelche kranken queries um die Performance der DB-CLass zu testen und Standardsachen um zu schaun wie sichs im Normalbetrieb verhält. Interessant wärs aber schon 
|
Snoop
Here to stay
|
mit deiner Rendertime lieferst du nichts brauchbares um einen Vergleich anstellen zu können. mhm stimmt auch wieder irgendwie, da es ja auch serverabhängig ist, dass hab ich zuerst gar nicht überlegt, naja dann kann ich es halt nicht testen  naja macht nix 
|
Philipp
Here to stay
|
Ideal zum Benchmarken von Scripten ist Apache Bench, welches beim Apache Webserver dabei ist und Traffic simulieren kann. Hier als Beispiel ein Shootout zwischen meinen CMS System vs. PHP Nuke: [root@msi logs]# ab -c 500 -t 30 http://localhost/phpnuke/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Finished 97 requests Server Software: Apache/2.0.44 Server Hostname: localhost Server Port: 80 Document Path: /phpnuke/ Document Length: 20688 bytes Concurrency Level: 500 Time taken for tests: 30.520346 seconds Complete requests: 97 Failed requests: 0 Write errors: 0 Non-2xx responses: 97 Total transferred: 2939244 bytes HTML transferred: 2865800 bytes Requests per second: 3.18 [#/sec] (mean) Time per request: 157321.370 [ms] (mean) Time per request: 314.643 [ms] (mean, across all concurrent requests) Transfer rate: 94.04 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 31 312.5 0 3078 Processing: 12215 15860 2497.9 15447 18465 Waiting: 6183 12991 3786.5 15437 18441 Total: 12215 15891 2511.3 15447 18465 Percentage of the requests served within a certain time (ms) 50% 15447 66% 18464 75% 18465 80% 18465 90% 18465 95% 18465 98% 18465 99% 18465 100% 18465 (longest request) [root@msi logs]# ab -c 500 -t 30 http://localhost/st/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Finished 792 requests Server Software: Apache/2.0.44 Server Hostname: localhost Server Port: 80 Document Path: /st/ Document Length: 53376 bytes Concurrency Level: 500 Time taken for tests: 38.131096 seconds Complete requests: 792 Failed requests: 0 Write errors: 0 Total transferred: 42533786 bytes HTML transferred: 42380544 bytes Requests per second: 20.77 [#/sec] (mean) Time per request: 24072.662 [ms] (mean) Time per request: 48.145 [ms] (mean, across all concurrent requests) Transfer rate: 1089.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 28 308.3 0 4670 Processing: 9737 15330 3499.8 15632 22876 Waiting: 1851 8322 4531.4 7697 15644 Total: 9751 15359 3495.5 15632 22876 Percentage of the requests served within a certain time (ms) 50% 15632 66% 15679 75% 16970 80% 18634 90% 19967 95% 22749 98% 22875 99% 22876 100% 22876 (longest request) Zum Syntax: ab -c 500 -t 30 http://localhost/st/Damit werden 500 gleichzeitige Anfragen an http://localhost/st/ 30 Sekunden lang geschickt. Ich würde nicht über 500 gehen, da der Server dann möglicherweise komplett überlastet und auf keine Anfrage mehr antwortet. Ebenfalls würde ich Apache Bench nicht auf echten (Produktiven) Webserver einsetzten da während des Benchmarks zweistelliger Serverload Werte erreicht werden können. Beim Ergebnis gibt es zwei wichtige Werte: 1) Finished XXX requests Zeigt an wieviel Anfragen innerhalb der 30 Sekunden beantwortet wurden 2) Requests per second: XX.XX [#/sec] (mean) Zeigt die Anfragen pro Sekunden an. Bei beiden Werten gilt, um so höher um so besser. Im großen und ganzen ist Apache Bench ein netter Stresstest für Script und Server 
|
Snoop
Here to stay
|
Passt danke, werd ich morgen mal probieren 
|