Spezifische Apache- und MySQL-Einstellungen für eine leichtgewichtige Site

Spezifische Apache- und MySQL-Einstellungen für eine leichtgewichtige Site

Ich habe eine kleine Website mit Joomla und Moodle eingerichtet. Beide scheinen sehr langsam zu sein. Der Server (CentOS Release 5.5 (Final)) ist ein virtueller dedizierter Server mit etwa 2 GB RAM. Ich gehe nicht davon aus, dass mehr als 10-15 Personen gleichzeitig darauf zugreifen können (und wenn das hoch ist).

Welche Einstellungen könnte ich in Apache, MySQL oder sogar im Betriebssystem ändern, um die Leistung meiner Site zu verbessern?

Ich mache mir keine Sorgen, dass mir die Ressourcen ausgehen, wenn ich zu viele Besucher bekomme.

Wenn Sie spezifischere Daten benötigen, hinterlassen Sie einen Kommentar und ich werde die Frage bearbeiten.

Datenbankgeschwindigkeit:

+--------------------+----------------------+------------------+
| Data Base Name     | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| information_schema |           0.00390625 |       0.00000000 | 
| joomla             |           0.33125496 |       0.07981014 | 
| moodle             |           7.73092937 |       0.01922131 | 
| mysql              |           0.52505302 |       0.00000000 | 
| phpmyadmin         |           0.01499939 |       0.00106049 | 
+--------------------+----------------------+------------------+
5 rows in set (0.07 sec)

Von Apache geladene Module:

core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_default mod_include mod_log_config mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate mod_headers mod_setenvif mod_mime mod_status mod_autoindex mod_info mod_negotiation mod_dir mod_alias mod_rewrite mod_cache mod_suexec mod_disk_cache mod_file_cache mod_cgi mod_version mod_php5 mod_ssl 

$ Katze /etc/meine.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#don't use old password format
old_passwords=0

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links=0

#Alwaysuse the better InnoDB
default-storage-engine=InnoDB
innodb_buffer_pool_size=512

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Ich suchespezifische Einstellungendurch eine Änderung wird die Geschwindigkeit des Servers erhöht.

Antwort1

Mysql benötigt immer RAM. Die Konvertierung (zumindest der meisten) Tabellen (in Joomla und Moodle, nicht in den anderen) in das InnoDb-Format und die Erhöhung des verwendeten Speichers werden die Geschwindigkeit ebenfalls erheblich verbessern. innodb_buffer_pool_size ist die MySQL-Konfiguration. Die standardmäßig verwendete Größe beträgt nur 8 MB – wenn Ihre Datenbank wirklich so klein ist (und ich wäre ehrlich gesagt ein wenig überrascht, wie klein sie ist, wenn sie überhaupt verwendet würde), dann würden sogar 16 MB einen Unterschied machen, und wahrscheinlicher wäre es sowieso, dass ich nur 512 MB für innodb_buffer_pool_size angeben würde. Mit dem gesamten Datenbankinhalt im Speicher ist die Festplatte fast aus der Gleichung genommen.

InstallierenXdebugkönnen Sie Funktion für Funktion und Zeile für Zeile herausfinden, welche Teile der Site langsam sind. Webgrindanalysiert die Ausgabe von Xdebug, um sie Ihnen anzuzeigen.

Um mehr herauszufinden, müssen Sie einige Statistiken darüber sammeln, was der Server tut – etwa collcted ausführen und dann die erstellten Diagramme anzeigen. Selbst wenn Sie sich nur die Ausgabe von „top“ ansehen, kann die Ausführung auf der Befehlszeile sehr hilfreich sein, um zu sehen, was vor sich geht.

verwandte Informationen