Archive for October, 2007

Nach einigen Mühen konnte ich das Templatesystem endlich mit dem Webserver verbinden.

Das Ergebnis sieht zwar nach nicht viel aus, stellt aber einen wichtigen Meilenstein für mich dar.

KK Gameserver incl. Templatesystem

In den nächsten Tagen folgt dann die neue Cache-Engine für den Webserver/das Templatesystem und der eigene “Memory-Handler”.

Bevor man mich falsch versteht, nein ich schreibe keinen echten Memory-Handler.

Es geht hierbei viel mehr um einen recht komplexen Code, welcher die Haltezeit und den Nutzungsgrad von Datenobjekten später speichern soll. Anhand dieser Informationen wird dann entschieden, ob ein Datenobjekt im Speicher gehalten werden muß, oder ob man es rauswerfen kann.

Ich bin immer mehr angetan von .Net.

Nicht nur das die Jungs von Microsoft die Entwicklungsumgebung für Lau rausrücken, nicht nur das sie die Sourcen jetzt nach und nach offen legen, nein, dank dem Team hinter Mono funktioniert das Zeug auch unter Linux!

Der Webserver unter Linux (Gentoo)

Was waren nochmal die Vorteile von OpenSource unter Linux?

* Jeder kann den Source einsehen… Wird im Moment nach und nach erfüllt.
* Es ist kostenlos… Ist bereits erfüllt.
* Jeder darf es verwenden der sich an die Lizenz hält… Sogar übererfüllt. Keine Virulente GPL und Co. Lizenz.
* Es ist gut dokumentiert… Ich würde mal sagen, daß sich hier die OpenSourcler mal ein dickes Stück von abschneiden können.

Hei… ich bin begeistert. Und das, obwohl ich bei .Net anfangs sehr skeptisch war.

Btw.. Danke an TheUndeadable für seine Hilfreichen Ideen und Tips!

Heute habe ich einen Logcache eingebaut und einen simplen Cache der für statische Seiten da ist.

Das Ergebnis war spitze :D

Concurrency Level: 10
Time taken for tests: 0.844204 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3370000 bytes
HTML transferred: 2310000 bytes
Requests per second: 11845.48 [#/sec] (mean)
Time per request: 0.844 [ms] (mean)
Time per request: 0.084 [ms] (mean, across all concurrent requests)
Transfer rate: 3898.35 [Kbytes/sec] received

Mir macht im Moment noch ein seltsames Verhalten vom HttpListener Sorgen. Nach genau 28232 Requests macht er für 30 Sekunden dicht. Scheinbar hat Microsoft hier einen Schutzmechanismus eingebaut. Es wird nur die “spamende” IP geblockt für diesen Zeitraum. Von daher grinse ich und genieße das mal als Feature :D

Hier mal ein paar Performancewerte vom eigenen Webserver:

dana ~ # ab -c 100 -n 10000 http://192.168.10.9/test/index.htm
This is ApacheBench, Version 2.0.40-dev < $Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.10.9 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests

Server Software: Microsoft-HTTPAPI/1.0
Server Hostname: 192.168.10.9
Server Port: 80

Document Path: /test/index.htm
Document Length: 231 bytes

Concurrency Level: 100
Time taken for tests: 7.453964 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3370000 bytes
HTML transferred: 2310000 bytes
Requests per second: 1341.57 [#/sec] (mean)
Time per request: 74.540 [ms] (mean)
Time per request: 0.745 [ms] (mean, across all concurrent requests)
Transfer rate: 441.51 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 4
Processing: 9 73 7.8 73 90
Waiting: 7 73 7.8 73 90
Total: 13 73 7.7 73 90

Percentage of the requests served within a certain time (ms)
50% 73
66% 77
75% 80
80% 81
90% 83
95% 85
98% 86
99% 87
100% 90 (longest request)

Tja… es ist passiert… Abuzeus hat mich erwischt!

Und das habe ich erlitten…

Boots of butt-kicking

*G*

Ok, ist ein Insider, aber ein verdienter ;)

Auch wenn mich Abuzeus jetzt mit einem bestimmten Schuh peinigen wird…

Hier ist er… der eigene Webserver :D

Webserver

Im Moment kann er einfache HTML-Seiten übermitteln, ein Logfile im W3C CLF Format (incl. der ELF Erweiterungen des Apache) zu schreiben und läuft in einer Sandbox.

Theoretisch sollte er gut abgesichert gegen Scriptkiddis sein, aber ich werde hier noch weitere Arbeit reinstecken um ihn noch sicherer zu machen.

Wieso ich einen eigenen Webserver geschrieben habe? Weil ich es einfach mal versuchen wollte, ob ich sowas kann. Microsoft nimmt einem sehr viel Arbeit mit dem HttpListener ab. Außerdem habe ich mir so Möglichkeiten für später geöffnet. Eine davon ist, daß ich nicht mehr an Windows gebunden bin.

Wieso? Das erfahrt ihr, wenn es soweit ist. ;)

Aber zuerst muß ich mich vor Abuzeus jetzt verstecken :D

So… es wird Zeit für ein paar Themen Ideen und Vorschläge zu sammeln.

Ich habe 3 Themengebiete rausgesucht, welche als nächstes anstehen werden und noch nicht vollständig geplant wurden.

Hier geht es zu den jeweiligen Threads im Forum:

Ich habe die Tabelle um den pro Kampfrunde erzeugten Schaden ergänzt.

Anmerkung:

Die Angreifende Einheit befindet sich auf der X-Achse (Spaltenköpfe), die Verteidigende Einheit auf der Y-Achse (Zeilenköpfe).

Einheiten wir die Armbrustschützen sind reine Fernkämpfer.

Kampfsystem erzeugter vs. eingesteckter Schaden