Tag Archives: Geschwindigkeit

C-Programm & Cflags

Ich habe vor einiger Zeit das Prinzip von Makefiles anhand eines kleines Beispiels gezeigt -> http://suckup.de/howto/c/c-programm-primzahlen-makefiles/ <- den selben Quelltext kompilieren wir heute mit verschiedenen C-Flags und 1000000 Schleifendurchläufen …

 

1.)  ohne C-Flags

gcc -lm primzahlen.c -o primzahlen_slow

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.760s
user 0m1.420s
sys 0m0.164s

 

2.)  ohne C-Flags & ohne “math.h” (sqrt)

gcc primzahlen.c -o primzahlen_slow

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.407s
user 0m0.988s
sys 0m0.192s

 

3.)  -O2 & ohne “math.h” (sqrt)

gcc -O2 primzahlen.c -o primzahlen_2

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.405s
user 0m0.976s
sys 0m0.188s

 

4.) -Ofast (http://gcc.gnu.org/gcc-4.6/changes.html) & ohne “math.h” (sqrt)

gcc -Ofast primzahlen.c -o primzahlen_fast

 

Output: time ./primzahlen_fast

[...]

999961
999979
999983

real 0m1.377s
user 0m0.980s
sys 0m0.180s

 

5.) -Ofast + amdfam10 (http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD#Athlon_X2_7x50.2C_Phenom_X3.2FX4.2C_Phenom_II.2C_Athlon_II_X2.2FX3.2FX4

Ein paar spezielle CFlags für meine CPU. :) (cat /proc/cpuinfo)

gcc -Ofast -funsafe-math-optimizations -funsafe-loop-optimizations -m64 -mtune=amdfam10 -mabm -msse4a -floop-parallelize-all -ftree-parallelize-loops=4 -floop-strip-mine -floop-block -funroll-all-loops -fbranch-target-load-optimize -lm primzahlen.c -o primzahlen_fast

 

Output: time ./primzahlen_fast

[...]

999961
999979
999983

real 0m1.327s
user 0m0.944s
sys 0m0.172s

 

Fazit: 

Sobald ich -O1, -O2, -O3 oder -Ofast bei diesem kleinen Beispiel nutze ist der Geschwindigkeitsunterschied minimal und es ist egal, ob vorgefertigte mathematische Funktionen genutzt werden oder nicht.

dsl logo

Wie interpretiert man DSL-Informationen

“Mit Asymmetric Digital Subscriber Line (ADSL, engl. „asymmetrischer, digitaler Teilnehmer-Anschluss“) wird die zur Zeit häufigste Anschlusstechnik von Breitbandanschlüssen für Konsumenten bezeichnet. Sie wurde auf Basis der DSL-Technik mit der Maßgabe entwickelt, über die vorhandene Telefonanschlussleitung zu funktionieren, ohne die Telefonie über den Festnetzanschluss zu beeinträchtigen, und gleichzeitig den meist asymmetrischen (ungleichen) Datenratenbedürfnissen der Privatkunden nach höherer Empfangs- als Sendedatenrate nachzukommen.” – wiki


ADSL ist im Gegensatz zu SDSL weiter verbreitet und um einiges günstiger, da man zwar hohe Downloadraten, jedoch nicht so hohe Uploadraten erzielt. Das Übertragungsverfahren für ADSL wird über die bestehende Telefonverkabelung realisiert, es handelt sich um ein asymmetrisches breitbandiges Datenübertagungsverfahren (SDSL = symmetrische), welches auf die herkömmliche Kupfer-Doppelader im Anschlussbereich geschaltet wird. Zur ADSL-Kommunikation muss auf beiden Seiten der Anschlussleitung ein ADSL-Modem installiert sein, sowohl in der Ortsvermittlungsstelle als auch beim Teilnehmer, daher hängt die max. Geschwindigkeit der Leitung auch maßgeblich von der Entfernung zur Hauptvermittlungsstelle (HVT) und die Qualität (dicke) des eingesetzten Kabels ab. Hier noch schnell ein Link, wo du die Vermittlungsstellen finden kannst -> “www.schmalbandatlas.de/atlas/“. Wenn du nun einige Kilometer von solche einer Stelle entfernt wohnst, ist dies noch nicht weiter schlimm, da du wahrscheinlich über einen von zirka 300.000 Kabelverzweigeren (KVZ) mit dem HVT verbunden bist.


ADSL-Datenraten


DSL-Leitungs-Informationen kann man in jedem handelsüblichen DSL-Modem finden, diese Werte können nützliche sein um z.B. Probleme von ADSL einzugrenzen oder Leitungsfehler festzustellen. Die Werte können außerdem als grober Richtwert dafür verwendet werden, ob eine Leitung mit höheren Geschwindigkeiten laufen könnte oder eben nicht!


Welche Zahlen musst du dir anschauen?

Verschiedene Router bezeichnen diese Zahlen unterschiedlich, aber die wichtigsten Werte (Zahlen), sollten in etwa folgende Bezeichnung haben: (ADSL-Status / Statusübersicht)
  • Connection-, Sync-Speed oder Rate
  • Attenuation / Dämpfung oder Atten oder Loop loss
  • SNR Margin oder Noise Margin oder Noise oder Margin
  • Einzelheiten über etwaige CRC / HEC / RS / FEC Fehler und fehlerbehaftete Sekunden können ebenfalls hilfreich sein.




Es gibt natürlich auch Router / Modems welche noch weitere Zahlen & Fakten welche eventuell helfen können die Leitung zu analysieren, anzeigen. Jedoch sollten die meisten Geräte die soeben genannten Dinge anzeigen können.


Was ist “Sync Speed”?

Die Geschwindigkeit, mit der der Router synchronisiert (verbindet), dies wird vom Provider entweder “fest” eingetragen oder wird “dynamisch” mit der Gegenstelle ausgehandelt, so dass deine Leitung ggf. mit weniger Bandbreite synchronisiert, wenn z.B. die Qualität der Leitung schlechter wird. (die Leitung kann z.B. schlechter werden, wenn plötzlich alle deine Nachbarn einen DSL-Anschluss haben und somit sich diese Leitungen in der Vermittlungsstelle gegenseitig stören.

Daher ist es auch nicht ungewöhnlich, wenn du nach einem Reboot deines Routers eine andere Geschwindigkeit angezeigt bekommst.


Es ist wichtig zu bedenken, dass der “Sync Speed” nicht deine “wahre Geschwindigkeit” ist, mit welcher du downloaden kannst. Solche Dinge wie der “TCP/IP Overhead” führen dazu, dass eine Leitung welche mit z.B. 8128 kbps synchronisiert ist, einen maximalen Durchsatz-Geschwindigkeit von rund 7,1 MB hat (ca. 13% weniger).


Was ist Dämpfung?

Leitungsdämpfung steht im Zusammenhang mit “loop lose”, je niedriger dieser Wert ist desto besser und desto bessere sind deine Chancen immer eine hohe Geschwindigkeiten zu haben.


Der Begriff Dämpfung wird verwendet, um die Reduktion der ADSL-Signalstärke, die auf dem Kupferkabel über größere Entfernungen auftritt zu beschreiben. Die Dämpfung wird in dB (Dezibel) gemessen und je weiter du vom der Vermittlungsstelle entfernt bist, desto höher steigen die Dämpfungswerte  bzw. mit desto mehr Signal-Verluste treten auf.

Dämpfung ist exponentiell, somit halbiert jeweils  3dB Dämpfung die Stärke des Signals. Erhält man daher mit 30dB Dämpfung nur 1/1.000 der Signalstärke, so erhält man mit 60dB nur noch 1/1.000.000 der Signalstärke.


Die wahre Leitungsdämpfung kann nur am DSLAM, in der Vermittlungsstelle gemessen werden (DSLAM = DSL Adress Multiplexer) – hier werden die Daten vieler DSL Nutzer (Adressaten) zusammenfasst (Multiplex) und in das schnelle ATM Netz einspeist) Jedoch kann unser Router uns bereits einen Richtwert anzeigen.

Wenn man höhere Frequenzen / Geschwindigkeiten auf einer Leitung fährt (500kb zu 2Mb) ist es sehr wahrscheinlich, dass die Dämpfungswerte nach oben gehen, da höhere Frequenzen, wie sie verwendet werden, um höhere Geschwindigkeiten zu übertragen eher gedämpft werden (höhere Frequenzen = höhere Dämpfung).

ADSL2+ hat eine erhöhte Frequenz-Spektrum, also eine erhöhte Dämpfung von ca. 3-4dB. Als sehr grobe Orientierung:

Eine Geschwindigkeitssteigerung von 4MB bewirkt  ~1dB Erhöhung der Dämpfung.

Da unterschiedliche Router verschieden mit den Frequenzen zurechtkommen, kann es sein, dass  Router nicht auf 1Mb bei einer weiten Entfernung zur Vermittlungsstelle synchronisieren andere Modelle hingegen schon. Sehr gute Erfahrungen hab ich hier mit SpeedTouch-Geräten gemacht. :-)


Was ist SNR?

SNR Signal to Noise Ratio – in anderen Worten: eine Messung in Dezibel der Signalstärke auf der Leitung. Um die Information sicher aus dem Signal extrahieren zu können, muss sich das Nutzsignal deutlich vom Hintergrundrauschen abheben, das SNR muss also ausreichend groß sein. Fällt das SNR, steigt die Fehlerrate. Dem SNR entspricht bei der Digitalübertragung die Bitfehlerrate und je höher dein  SNR-Wert ist, desto besser, da es weniger Nebengeräusche gibt. :-)


SNR schwankt auf allen Leitungen im Laufe des Tages durch verschiedene Faktoren. Die Signalstärke ist in der Regel am Morgen besser als am Abend, da am Abende mehr “Lärm” auftritt, da mehr Menschen zu Hause sind und somit elektromagnetisches Rauschen verursachen. Die Liste der Stör-Quellen ist lang… es können Fernseher, PCs, Beleuchtung, Heizung, Pumpen etc. sein.



Eine einfache bildliche Beschreibung von SNR:

SNR
  • “Du” bist der DSLAM in der Vermittlungsstelle (links)
  • “Ihre Stimme” ist das DSL-Signal. (blaue Linie)
  • “Dein Freund” ist der Router bei dir @ home (rechts)
  • Die “Musik” sind generelle Hintergrundgeräusche aus verschiedenen elektromagnetischen Quellen (unten)
  • Die “andern Gespräch” sind alle anderen DSL-Anschlüsse in deiner Nähe (oben)

Dein Freund kann dich besser verstehen, wenn du näher bei Ihm bist, als wenn er auf der anderen Seite des Raumes ist, dies entspricht dem Abstand zwischen deiner Wohnung und der Vermittlungsstelle – je weiter man von der Vermittlungsstelle weg wohnen, desto schlechter die Signale und so anfälliger ist die Leitung für Störsignale (Lärm).

Jede Leitung muss eine bestimmte Menge an SNR haben, um bei einer bestimmten Geschwindigkeit zu funktionieren. Sehr grob kann man sagen, dass 1dB (SNR) entspricht 450 kbps der Geschwindigkeit, aber auch andere Faktoren wie die Dämpfung und Leistung müssen im Auge behalten werden.


Was ist SNR Margin?

SNR Margin resultiert aus SNR, ist aber nicht das Gleiche. SNR Margin könnte als “Pufferzone” bezeichnet werden, die es gibt, um Verbindung gegen normale SNR-Schwankungen, welche täglich auftauchen zu schützen.

Die meistern Standard-Router zeigen in der Regel die “SNR Margin” und nicht der “SNR-Wert” an, unabhängig von der angezeigten Bezeichnung. Je nach Hersteller kann dies “Receive Margin”, “SNR”, “Noise” oder jede Variation davon sein oder es kann auch zu SNRM oder Noise Margin abgekürzt werden.

SNR Margin ist die Differenz zwischen dem tatsächlichen und dem SNR und dem benötigtem SNR, um bei einer bestimmten Geschwindigkeit stabil zu laufen. Zum Beispiel, wenn Ihre Leitung 35dB SNR haben muss, um auf 8Mbps zu laufen, und die aktuelle Leitung einen SNR von 41dB hat, dann ist die SNR Margin 6dB.

Wenn somit dein “SNR Margin”-Wert zu niedrig ist, kann die Leitung zusammen brechen, welche auch zwischen-zeitig auftreten können, somit ist ein Blick auf deinen “SNR Margin”-Wert oft eine nützliches Mittel ADSL-Fehler festzustellen. Dämpfung und SNR Margin sind unabhängige voneinander, so kannst du eine gute Dämpfung haben, aber einen schlechten (niedrigen) SNRM – oder umgekehrt.


Was ist Target SNR Margin?

Wenn der Sync-Speed automatisch ausgehandelt wird, muss man jedoch noch einen gewissen Rahmen angeben, so teilt man seinem Modem mit, dass man einen Target SNR Margin von z.B. 10dB wünscht und es die Verbindung so herstellen soll. (Dies kann jedoch auch nicht bei allen Routern angegeben werden.) Wenn du z.B. eine Fritzbox im Einsatz hast und Verbindungsabbrüche feststellst, dir dann deine “SNR Margin” anschaust und diese sehr niedrig ist, solltest du einmal ein anderes Gerät an deinem Anschluss ausprobieren, da die Fritzbox besonders schnelle Verbindungen aufzubauen versucht und den “Target SNR Margin”-Wert zu niedrig ansetze. Warum AVM das macht? Es könnte daran liegen, dass man anderen (besseren) Modems in punkto Geschwindigkeit nicht nachstehen möchte.

Somit spielt die Target SNR Margin eine wichtige Rolle bei der Synchronisierung zwischen deinem Router und dem DSLAM in der Vermittlungsstelle. Target SNRM beeinflusst die Geschwindigkeit, mit der wir Synchronisieren und legt die anfängliche SNR Margin (Pufferzone) fest und ist somit die  (grobe) Voreinstellung der SNR Margin unmittelbar nach einer Resynchronisation.


Meist werden 6dB, 9dB, 12dB oder 15dB als Profile verwendet, wobei 6dB der Standardwert ist. Längere Strecken sind anfälliger für Störungen (Lärm) und benötigen daher oft eine höheren Wert als kürzere Leitungen.

Es ist wichtig zu beachten, dass auf sehr guten Leitungen, die in der Lage sind mit über 8 MB zu synchronisieren und die derzeit mit 8128 oder 7616 Synchronisiert sind, der SNR Margin-Wert als höher eingestuft ist, da die “output power” ggf. reduziert wurde, um Störungen von anderen Leitungen zu minimieren und somit wäre der SNRM-Wert “verfälscht”.


Wie schnell sollte meine Verbindung sein?

Dies hängt ganz von der Entfernung von der Vermittlungsstelle und den Zustand Ihrer Telefonleitung ab.

Du kannst einen groben Wert aus deiner Leitungsdämpfung und deiner Leitungslänge berechnen lassen, jedoch spielen hier noch Unmengen andere Stör-Quellen eine Rolle, wodurch deine Geschwindigkeit in der Realität stark von deinem Ergebnis abweichen kann.

-> www.kitz.co.uk/adsl/max_speed_calc.php


Was sind BT Fixed Rate Grenzen?

Idealerweise sollte deine Leitungslänge unterhalb von 3,5 km sein, um eine 2Mb Verbindung zu bekommen und 6km, für eine 1Mb Verbindung nicht überschreiten.

Auf einigen Leitungen kann man ein festes Profil einstellen, dies kann hilfreich sein, wenn man z.B. große Schwankungen von SNR hat, welche in guten Zeiten mit hohen Geschwindigkeiten synchronisieren und dann öfter zusammenbrechen.


Dämpfung Geschwindigkeit Sync
Down
Sync
Up
Profil
> 60dB 512 kbps 576 64-288

Profil 500

43 bis 60 dB 1 Mbps 1152 288 Profil 1000
<= 42 dB 2 Mbps 2272 288 Profil 2000


63.5 dB Dämpfung?

Der Grund dafür, dass einige Router / Modems eine maximale Dämpfung  von 63.5 dB anzeigen, ist das im G.992.1-Standard folgendes steht, -> “Die Dämpfung reicht von 0 bis 63,5 dB mit 0,5 dB-Schritten.” Daher  haben viele Firmware-Versionen diese als Grundlage und sind daher buchstäblich nur bis 63.5dB ausgelegt. Wenn dein Router 63.5dB anzeigt, dann kann es sein, dass die Dämpfung in Wirklichkeit höher ist.


Quelle:

http://www.kitz.co.uk/adsl/linestats.htm

APC + eAccelerator + XCache

PHP besitzt selbst keinen Cache, was dazu führt, dass ein Skript bei jedem Aufruf neu übersetzt werden muss. Um dem entgegenzuwirken, gibt es einige Erweiterungen, die diese Funktionalität nachrüsten, wie beispielsweise den eAccelerator den alternativen PHP Cache.

Da PHP selber noch keinen Cache besitzt, was zur Folge hat das die Skript immer und immer wieder neu übersetzt werden müssen, gibt es ein paar Erweiterungen, welche diese Funktion nachrüsten. Und schon sind wir beim Thema.

 

1.) APC (Alternative PHP Cache)

APC ist ein Open-Source-Zusatzmodul für PHP, das eine beschleunigte Ausführung von PHP-Programmen ermöglicht. Die Beschleunigung wird dadurch erreicht, dass der kompilierte PHP-Quelltext zwischengespeichert wird und bei wiederholter Ausführung das zeitaufwändige Kompilieren nahezu vollständig vermieden werden kann. – Wiki

Als erstes schauen wir uns unsere aktuelle php-Config an…

vim /var/www/info.php
< ?php
phpinfo();
?>
w3m deine_webseite.abc/info.php

Zudem prüfen wir eben noch die momentane Geschwindigkeit unserer Webseite… z.B. auf www.linkvendor.com und internetsupervision.com

Nun installieren wir APC:

aptitude install php-pear
aptitude install php5-dev apache2-prefork-dev build-essential
pecl install apc
vim /etc/php5/conf.d/apc.ini
extension="apc.so"
apc.enabled=1
apc.file_update_protection=2
apc.optimization=0
apc.shm_size=32
apc.shm_segments=1
apc.gc_ttl=7200
apc.ttl=7200
apc.num_files_hint=1024
apc.enable_cli=0

Die Größe an Dateien welche im Speicher (apc.shm_size) gehalten wird, kann man ganz nach Auslastung des Servers anpassen. Um sich anzeigen zu lassen, wie viel der momentane maximal Wert ist, kannst du folgenden Befehl ausführen. (max seg size (kbytes) = 32768 -> 32MB) Wer einen Root-Server hat kann unter (/etc/sysctl.conf) die folgenden Werte entsprechend anpassen: kernel.shmall, kernel.shmmax

ipcs -lm 
/etc/init.d/apache2 restart
Die komplette Dokumentation kann im PHP Manual gefunden werden: http://de2.php.net/manual/de/ref.apc.php

 

2.) eAccelerator

eAccelerator ist eine Open Source Software zum Einsatz auf Webservern, die als Beschleuniger, Optimierer und Cache für PHP-Seiten dient. – Wiki

Wir schauen uns wieder unsere aktuelle php-Config an…

vim /var/www/info.php
<?php phpinfo(); ?>
w3m deine_webseite.abc/info.php

Geschwindigkeit unserer Webseite prüfen… z.B. auf www.linkvendor.com und internetsupervision.com

Nun installieren wir eAccelerator:

aptitude install build-essential php5-dev git
cd /usr/src/
git clone https://github.com/eaccelerator/eaccelerator
cd eaccelerator/
phpize
./configure
make
make install
vim /etc/php5/conf.d/eaccelerator.ini
;[eaccelerator]
extension = "eaccelerator.so"

eaccelerator.enable = "1"
eaccelerator.shm_size = "0"
eaccelerator.optimizer = "1"
eaccelerator.debug = "0"
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"
eaccelerator.check_mtime = "1"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
;eaccelerator.compress = "1"
;eaccelerator.compress_level = "6"
;eaccelerator.keys = "shm"
;eaccelerator.sessions = "shm"
;eaccelerator.content = "shm"
;eaccelerator.allowed_admin_path = ""
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
/etc/init.d/apache2  restart

Und noch einmal die Geschwindigkeit deiner Webseite prüfen… z.B. auf www.octagate.com und internetsupervision.com

Konfiguration von eAccelerator:
—————————————

eaccelerator.shm_size
Die Menge an Arbeitsspeicher (in Megabytes) welche eAccelerator verwenden darf.
Der Standard Wert ist “0”.

eaccelerator.cache_dir
Gibt das Verzeichnis an, wo eAccelerator die vorkompilierten Daten auf der Festplatte speichern darf. Die gleichen Daten können auch im Speicher oder auch nur im Speicher untergebracht werden, was einen schnelleren Zugriff zu folge hätte.
Der Standard Wert ist “/tmp/eaccelerator”.

eaccelerator.enable
Ein- / Ausschalten von eAccelerator. Wobei “1” gleich “an” bedeutet.
Der Standard Wert ist “1”.

eaccelerator.optimizer
Hier kannst du Ein- / Ausschalten ob der PHP-Code noch optimiert werden soll. Wobei “1” gleich “an” bedeutet.
Der Standard Wert ist “1”.

eaccelerator.debug
Hier kannst du das Debug-Logging Ein- / Ausschalten.
Der Standard Wert ist “0”.

eaccelerator.check_mtime
Ein- / Ausschalten für die Prüfung, ob der PHP-Code geändert wurde und somit doch noch mal neu übersetzt werden sollte. Wobei “1” gleich “an” bedeutet.
Der Standard Wert ist “1”.

eaccelerator.filter
Hier kannst du angeben welche Daten gecacht werden sollen. (z.B. “*.php *.phtml”) Wenn der Eintrag mit einem “!” beginnt, bedeutet dies, das diese Daten nicht gecacht werden. Der Standard Wert ist “”. -> was bedeutet, dass alles gecacht wird.

eaccelerator.shm_max
Wenn sehr große Daten nicht in den Arbeitsspeicher wandern sollen, dann mann man diesen Wert setzten. (z.B. 10240, 10K, 1M).
Der Standard Wert ist “0”.

eaccelerator.shm_ttl
Wenn eaccelerator keinen Arbeitsspeicher mehr zur Verfügung hat, werden alle Daten gelöscht, welche älter sind als z.B. “9000” Sekunden (Webseiten welche die letzten 2 1/2 Stunden nicht besucht wurden)
Der Standard Wert ist “0”.

eaccelerator.shm_prune_period
Wenn eaccelerator keinen Arbeitsspeicher mehr zur Verfügung hat, werden die Daten welche vor z.B. 9000 Sekunden gecacht wurden gelöscht.
Der Standard Wert ist “0”.

eaccelerator.shm_only
Ein- / Ausschalten vom Cache auf der Festplatte.
Der Standard Wert ist “0”. -> Was bedeutet das sowohl im Arbeitsspeicher als auch auf der Festplatte gecacht wird.

eaccelerator.compress
Ein- / Ausschalten der Komprimierung der Daten.
Der Standard Wert ist “1”.

eaccelerator.compress_level
Stellt den Grad der Komprimierung ein.
Der Standard Wert ist “9”. -> Max. Komprimierung

 

3.) XCache

Opcode-Cacher zum PHP-Beschleunigen auf Servern, beschleunigt den Prozess des Kompilierens von PHP-Skripten, indem er den kompilierten Zustand von PHP-Skripten im RAM zwischenspeichert und die kompilierte Version direkt aus dem Hauptspeicher nutzt.

aptitude install php5-xcache

Hier noch meine Konfiguration für das WordPress Plugin “W3 Total Cache” …

vim /etc/php5/conf.d/xcache.ini
; configuration for php xcache module
[xcache-common]
extension=xcache.so

[xcache.admin]
xcache.admin.enable_auth = Off
;xcache.admin.user = "admin"
;xcache.admin.pass = ""

[xcache]
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; to disable: xcache.size=0 (Standard)
; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size = 64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; just a hash hints, you can always store count(items) > slots
xcache.slots = 8K
; ttl of the cache item, 0=forever
xcache.ttl = 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval = 0

; same as aboves but for variable cache
xcache.var_size  = 64M
xcache.var_count = 1
xcache.var_slots = 8K
; default ttl
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 900

xcache.test = Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection
; 2 group of php won't share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
;
; xcache.mmap_path = "/dev/zero"

; leave it blank(disabled) or "/tmp/phpcore/"
; make sure it's writable by php (without checking open_basedir)
;
; xcache.coredump_directory = ""

; per request settings
xcache.cacher = On
xcache.stat = Off
xcache.optimizer = On

[xcache.coverager]
; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
;
;xcache.coverager = Off

; ini only settings
; make sure it's readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
;
;xcache.coveragedump_directory = ""

weiter Infos zu xCache: xcache.lighttpd.net/wiki/XcacheIni

 

Test-Ergebnisse:

Mit folgendem Befehl habe ich die Geschwindigkeit meiner Webseite getestet, wobei ich in der Zwischenzeit, vom apache2 als Webserver Abstand genommen habe und voll auf “nginx” setzte. :-)

ab -n500 -c20 -dS "http://suckup.de/"
Somit wurden 500 Seitenaufrufe, davon 20 parallel ausgeführt, um einen Durchschnittswert zu erhalten habe ich den Befehl 3x ausgeführt und xCache war ein wenig schneller!!! :-)

nethogs und iftop – Traffic analysieren

nethogs erlaubt es dir den Netzwerk-Traffic pro Prozess zu sehen. Es zeigt sowohl upload and download Geschwindigkeiten. Unterstützung für Ethernet, PPP und unterstützt sowohl IPv4 als auch IPv6.

Installation unter Debian:

aptitude install nethogs

_________________________

Wer hingegen sehen möchte, wer (IP-Adresse) die Daten gerade anfordert bzw. empfängt, sollte sich mal folgendes Programm anschauen -> Iftop.

Installation unter Debian:

aptitude install iftop

_________________________

Video: