moviez.to – blog

der blog rund um moviez.to

Wie bereits kürzlich erwähnt, zählt der Sitespeed neu als Ranking Faktor. Mehr dazu hier: http://blog.moviez.to/google-sitespeed-als-rankingfaktor-gzipdeflate-aktivieren/

Als weiterer Punkt führen wir nun den http eTag ein. Was ist ein eTag genau? Wikipedia.org sagt dazu:

ETag (für entity tag, etwa Entitätmarke) ist ein im HTTP 1.1 eingeführtes Header-Feld. Es dient zur Bestimmung von Änderungen an der angeforderten Ressource und wird hauptsächlich zum Caching, also der Vermeidung redundanter Datenübertragungen, verwendet.

Apache 2.2 unterstütz dies von Haus aus und es reicht die Anweisung FileETag All hinzuzufügen.

Wer sich dazu genauer informieren will, empfiehlt sich dieser Artikel: Apache eTag

Auch Yahoo berichtet darüber ausführlich (englisch)

Wie vielleicht einige bereits mitbekommen wird ab 2010 der Sitespeed als Ranking Faktor miteinbezogen. Wie stark der Sitespeed als Ranking-Kriterium mit einbezogen wird und ob er nicht bereits schon zählt, steht in den Sternen.

Auf jeden Fall wollen wir gut vorbereitet sein. Deshalb haben wir einige Verbesserungen für die Ladezeiten vorgenommen.  Eine davon ist die Aktivierung von mod_deflate.

Deflate komprimiert die Auslieferung von Webseiten.  Sprich der Browser erhält vom Server eine komprimierte Datei welche er verarbeiten kann.  Dies hat 2 Vorteile: weniger Traffic auf dem Server,  kürzere Ladezeiten für den User. Allerdings gibt es einen grossen Nachteil: die serverseitige Komprimierung braucht CPU-Resourcen. Wer da nichts mehrs frei hat, sollte die Finger davon lassen!

Mod_deflate haben wir wie folgt aktiviert: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Um zu testen, ob alles läuft verwendet man am Besten folgenden Link: http://www.whatsmyip.org/http_compression/

Zusätzlich wird einem noch schön das Komprimierungslevel vorgeführt:

http://www.moviez.to/nojs/ is gzipped

Original Size: 100.87 KB
Gzipped Size: 12.49 KB
Data Savings: 87.62%

Gestern haben wir das Burning Board 3.0.9 auf die neue (kostenpflichtige) Version 3.1 updated. Der Preis für dieses Update betrug 49€, welche sich aber alleweil lohnen, wenn man sich die Featurelist anschaut.

Das Update gestaltet sich sehr einfach – im Mitgliederbereich die Update .tar.gz downloaden und im ACP das Burning Board Package auswählen und “aktualisieren” anwählen.  Nun muss die .tar.gz hochgeladen werden und schwup läuft das update schon.

Ich empfehle allerdings, die Kompatibilität der Extensions / Plugins zu überprüfen und diese vorgängig zu deaktivieren, falls (noch) nicht kompatibel. Somit erspart ihr euch eine Menge Ärger.

Mehr zum Update in unserem Board.

Kurzer Tipp des Tages:

Ihr könnt euer LV (logical volume)  bzw. LVM einfach und bequem per:

# lvextend -L+100GB /dev/VGxy/LV1
# resize2fs /dev/VGxy/LV1

vergrössern. Praktisch, nicht?

Kein umounten und weitere nervige Dinge nötig..

Einer der zentralen Punkte eines Webservers ist die Sicherheit des SSH-Logins. Deshalb möchten wir kurz darauf eingehen.  Folgendes Szenario verwendet Moviez.To:

- Fail2ban

- Login per VPN

- SSH-Auth per Keyfiles

Kurz zur Erläuterung:

fail2ban: fehlerhafte Logins werden geloggt und führen ab einer gewissen Anzahl falscher Logins zu einem automatischen Ban der IP in den iptables

VPN: Um sich per SSH auf dem Server einzuloggen, muss zuerst eine VPN Verbindung auf den Server hergerstellt werden.  (nur vordefinierte IP-Adressen können per VPN verbinden)

SSH-Auth per Keyfiles: Login auf dem Server ist nur per Key-File Authentifizierung möglich. Dies bietet zusätzliche Sicherheit, da es eine Bruteforce Attacke praktisch ausschliesst und die das Login nur möglich ist, wenn man im Besitz des PrivateKeys ist.

eAccelerator 0.9.6-rc1

The theme of this release is: back to basics! All non essential functions are removed from eAccelerator.

Das tönt doch wunderbar – noch mehr Performance. Natürlich wurde das Teil in der der dev Umgebung ausführlich getestet und es kam zu keinen Problemen. Daher haben wir uns entschlossen, die neue Version zu installieren, auch wenn sie erst ein RC ist. (Somit haben wir nun auch die Möglichkeit auf php 5.3 zu upgraden)

Das Upgrade gestaltet sich einfach:

http://www.eaccelerator.net/wiki/InstallFromSource

phpize
./configure
make
make install
php -v

und schon wissen wir: 

PHP 5.2.10 (cli) (built: Jul 31 2009 23:33:22)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
 with eAccelerator v0.9.6-rc1, Copyright (c) 2004-2007 eAccelerator, by eAccelerator

Kurzes Howto um die Server Performance zu optimieren:

Wichtig: um die Werte zu erhöhen, sollte generell genügend Memory frei sein.. der CPU Load & die Disk Auslastung werden sich bedanken..

Als erstes braucht ihr das ShellScript: https://launchpad.net/mysql-tuning-primer/+download

Danach chmod 755 und das Script aufrufen ./tuning-primer.sh

Nun erhaltet ihr eine Ausgabe (wichtig: der mySQL Server sollte nicht frisch gestartet sein um verwendbare Werte zu liefern.. ich empfehle mind 24h Uptime)

Danach einfach nach Scriptausgabe optimieren und Werte vorsichtig anpassen in den my.cnf:

SLOW QUERIES
Current long_query_time = 2 sec.
You have 0 out of 40657 that take longer than 2 sec. to complete
The slow query log is enabled.
Your long_query_time seems to be fine

WORKER THREADS
Current thread_cache_size = 0
Current threads_cached = 0
Current threads_per_sec = 1
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 25
Current threads_connected = 1
Historic max_used_connections = 5
The number of used connections is 20% of the configured maximum.
Your max_connections variable seems to be fine.

MEMORY USAGE
Max Memory Ever Allocated : 9 M
Configured Max Per-thread Buffers : 26 M
Configured Max Global Buffers : 4 M
Configured Max Memory Limit : 31 M
Total System Memory : 10 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 1 M
Current key_buffer_size = 1 M
Key cache miss rate is 1 : 190
Key buffer fill ratio = 6.00 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 512 K
Current query_cache_used = 364 K
Current query_cach_limit = 1 M
Current Query cache fill ratio = 71.28 %
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 512 K
Current record/read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly

OPEN FILES LIMIT
Current open_files_limit = 1024 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_cache value = 256 tables
You have a total of 227 tables
You have 50 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 32 M
Of 1091 temp tables, 84% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your max_heap_table_size and/or tmp_table_size.
to reduce the number of disk-based temporary tables

TABLE SCANS
Current read_buffer_size = 128 K
Current table scan ratio = 3409 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 424
You may benefit from selective use of InnoDB.
If you have long running SELECT's against MyISAM tables and perform
frequent updates consider setting 'low_priority_updates=1

Heute habe ich endlich die Zeit gefunden, eAccelerator auf dem Server zu installieren um die Performance zu verbessern.

Die Installation gestaltet sich ganz einfach.. zu Beginn ein phpize im PHP directory durchführen und danach ein gewohntes ./configure, make, make install in der Source.. Wenn dies alles erfolgreich war, das Modul, wie in der eAccelerator wiki beschrieben,  in der php.ini laden und den Apachen neustarten.

Schwup hat man einen ca. 1-10fach geringeren CPU-Load als bisher.. bei mir hat es geholfen.. der CPU wurde um Faktor 7 erleichert.. *THUMPS UP*

Netterweise gibt es in der eAccelerator wiki sogar gleich noch einen Backlink unter:  Websites using eAccelerator (yes you can spam your company here)

Auf Grund der rechtlichen Lage in der Niederlande, haben wir uns entschlossen, nach Russland umzuziehen. Dort sind unseres Wissens keine Anti-Piracy Organisationen tätig, welche mit der GVU zusammenarbeiten. Ausserdem ist das Urheberrecht in Russland lockerer als in Deutschland / Holland.

Der Standort Moskau ist zudem relativ weit von Deutschland entfernt, aber trotzdem noch genügend nahe, um ein einwandfreies Routing zu bieten (ca. 60ms). – Was z.B. bei Malaysia & co nicht möglich wäre.

Lange Rede kurzer Sinn.. moviez.to hat einen neuen Server:

AMD Athlon(tm) 64 X2 Dual Core Processor 3600+
2GB RAM
500GB HDD im S-ATA RAID1

In unseren Tests mit AB (Apache Benchmark) erreichte der Server hervorragende Werte. Über 8000 Requests pro Sekunde konnten problemlos abgefertig werden.

Der Load auf zur Rushhour lässt auch nur positives aus sich schliessen: zwischen 0.5 und 0.8 (das Projekt ist durch die mySQL Belastung durch die Powermovielist sehr CPU lastig..) – vergleichsweise war der Load auf dem alten Server bei ca. 1.5-1.9 zur Rushhour.

Wir wünschen weiterhin viel Spass auf moviez.to!