Blogeinträge für server
14.03.12Ein neuer Kunde nutzt TYPO3 als CMS, hat aber einige Probleme mit der Geschwindigkeit. Er fragte uns, ob wir einen Blick auf das System werfen können. Die Maschine entpuppte sich als VMware Instanz mit zwei CPUs, 2 GB Speicher und einem Ubuntu 10.04 LTS. Einige Optimierungen waren bereits umgesetzt, wie beispielsweise die Nutzung von mod_deflate in Apache.
Die initiale Optimierung bestand im Installieren eines PHP-Bytecode-Caches. Da die Ubuntu-LTS-Version kein aktuelles APC mitbringt, installierten wir über „pecl install apc“ die neuste Version und aktivierten sie für die Apache Instanz. Die Größe des Caches erhöhten wir durch eintragen der Zeile „apc.shm_size=128M“ in der Datei „/etc/php5/conf.d/apc.ini“ auf 128MB und im selben Moment erhöhten wir auch die Anzahl des allokierbaren Shared Memories auf 256MB. Dies geschieht für das laufende System durch ausführen von „echo 268435456 > /proc/sys/kernel/shmmax“. Die Änderung wird durch einen Eintrag in die Datei /etc/sysctl.conf über einem Systemneustart persistent gemacht: „kernel.shmmax=268435456“.
Im nächsten Schritt behoben wir die wichtigsten Google PageSpeed Meldungen. Das größte gemeldete Problem waren die fehlenden Cacheheader für Bilder. Durch das Kommando „a2enmod expires“ wird das Modul zum Setzen von Cacheheadern aktiviert und ein Eintrag von:
ExpiresActive On ExpiresDefault "access plus 1 month" |
in der Datei „/etc/apache2/mods-enabled/expires.conf“ sorgt dafür, dass alle statischen Inhalte für mindestens einen Monat ab dem Zugriff gecached werden. YSlow empfahl noch das deaktivieren des FileETag-Headers, was wir durch Eintrag „FileETag none“ in der Datei „/etc/apache2/httpd.conf“ auch taten.
Unser letzter Schritt bestand im Aktivieren des installierten Memcached-Servers als Backendcache. Dies wird in der Datei „typo3conf/localconf.php“ der TYPO3 Installation durchgeführt, durch Eintragen der Zeilen:
//use memcached backend as cache $TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1'; $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pages']['backend'] = 't3lib_cache_backend_MemcachedBackend'; $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pages']['options'] = array( 'servers' => array('localhost:11211'), ); $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pagesection']['backend'] = 't3lib_cache_backend_MemcachedBackend'; $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pagesection']['options'] = array( 'servers' => array('localhost:11211'), ); $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_hash']['backend'] = 't3lib_cache_backend_MemcachedBackend'; $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_hash']['options'] = array( 'servers' => array('localhost:11211'), ); $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['dbal'] = array( 'backend' => 't3lib_cache_backend_MemcachedBackend', 'options' => array( 'servers' => array('localhost:11211'), ) ); |
Der Kunde war mit der erreichten Performance zufrieden und wir boten ihm noch weitere Optimierungen an:
- Optimierung des MySQL-Servers
- Aufteilen der Bilder- und JS-Dateien auf unterschiedlicher Domains
- Nutzung eines schnelleren Webservers wie nginx für statische Inhalte
- Nutzung von Varnish als Reverse Proxy
Diese Vorschläge will er eventuell in der Zukunft adaptieren.
Interessieren auch Sie sich für technische Anwendungssysteme? Dann informieren Sie sich doch einfach über unser Schulungsangebot. Oder Sie melden Sie sich bei uns, entweder telefonisch unter +49 4105 135 03 99, per Mail an sales@initos.com oder über unser Kontaktformular.