Gegeben
Das Unternehmensportal in Bitrix24 wurde für mehrere hundert Benutzer mit ~ 300 GB Dateien und ~ 80 GB Datenbanken auf einem dedizierten Server mit BitrixVM entwickelt.
Vor dem Ändern der Einstellungen lauteten die Anzeigen wie folgt:
Standardleistungstest im Bitrix Admin-Bereich.
Von allen Parametern sollten Sie besonders auf die Arbeit mit MySQL und PHP-Konfiguration achten. Diese Indikatoren sind für uns besonders wichtig, da sie indirekt das Niveau der Projektleistung widerspiegeln.
Kundenanfrage
Unser Kunde wollte das Projekt nicht nur auf einen neuen dedizierten Server verschieben, sondern auch die Leistungsparameter verbessern. Zu den Schwierigkeiten zählen beispielsweise die Unfähigkeit, die Datenbank auf dem Quellserver zu sichern, und der langsame Betrieb des Portals selbst.
Entscheidung
MySQL-Einstellungen sind das erste, mit dem wir arbeiten.
Ersetzen wir die Standardwerte von BitrixVM durch:
explicit_defaults_for_timestamp = 1
expire_logs_days = 10
max_binlog_size = 100M
max_allowed_packet = 128M
transaction-isolation = READ-COMMITTED
performance_schema = OFF
sql_mode = ""
# Cache parameters
query_cache_type = 1
query_cache_size=16M
query_cache_limit=4M
key_buffer_size=256M
join_buffer_size=2M
sort_buffer_size=4M
# Parameters for temporary tables
tmpdir = /tmp
tmp_table_size=128M
max_heap_table_size=128M
thread_cache_size = 4
table_open_cache = 2048
# InnoDB parameters
innodb_file_per_table
innodb_buffer_pool_size = 8192M
innodb_buffer_pool_instances = 1
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_strict_mode = OFF
# Database charset parameters
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
[mysqldump]
quick
quote-names
default-character-set = utf8
Der nächste Schritt besteht darin, den CPU-Leistungsmodus zu ändern, da Bitrix eine höhere Prozessorfrequenz liebt.
In Abhängigkeit von der Anzahl der Kerne in jeder Änderung
Datei
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Powersave auf Leistung .
Als nächstes überprüfen
wir das Ergebnis: Wir sehen, dass sich die Arbeit mit MySQL am meisten geändert hat: Die Parameter "Schreiben" und "Ändern" sind fast dreimal gewachsen; Die Anzeige "Lesen" wurde um das Fünffache erhöht. Dies bedeutet, dass beim Zugriff der Site auf die Datenbank diese Art von Vorgang um ein Vielfaches schneller ausgeführt wird. Infolgedessen wird auch die Gesamtleistung der Website erhöht.
Aufgrund der Änderung des CPU-Energiemodus (dies ist möglich, da ein dedizierter Server verwendet wird) hat sich die Anzahl der Vorgänge auf der CPU erhöht.
Jetzt müssen Sie die Einstellungen für OPcache bearbeiten. Ersetzen Sie
in der Datei
/etc/php.d/10-opcache.ini
den ursprünglichen Wert durch:
zend_extension=opcache.so opcache.enable = 1 opcache.enable_cli = 1 opcache.memory_consumption = 256 opcache.max_file_size = 2M opcache.interned_strings_buffer = 64 opcache.max_accelerated_files = 130987 opcache.fast_shutdown = 1 opcache.revalidate_freq = 1 opcache.fast_shutdown=1 opcache.save_comments=1 opcache.load_comments=1 opcache.use_cwd = 1
Hinweis: Der Bitrix-Test sagt Ihnen, dass der Parameter den
opcache.revalidate_freq
Wert 0 und nicht 1 haben sollte, aber er funktioniert besser mit dem von uns angegebenen.
Der Parameter selbst ist
opcache.revalidate_freq
für die Überprüfung des Caches verantwortlich: Mit einem Wert von 0 wird er bei jedem Start des Skripts ausgeführt, und mit einem Wert von 1 wird er einmal pro Sekunde ausgeführt.
Nach dem Ändern der Einstellungen überprüfen wir das Ergebnis:
Aus der Tabelle folgt, dass der Indikator für die Arbeit mit MySQL etwas mehr gewachsen ist. Gleichzeitig haben sich der CPU-Betrieb und die Gesamtleistung von Bitrix aufgrund von Änderungen in den PHP-Einstellungen und dem Zwischenspeichern von Skripten erheblich erhöht.
Ausgabe
Dank dieser einfachen Änderungen in den Einstellungen konnten wir die Projektleistung um das Dreifache und die Interaktion mit der Datenbank um das Drei- bis Fünffache steigern (basierend auf der Gesamtpunktzahl des Bitrix-Tests). Unser Kunde ist mit der Arbeit des Projekts auf dem neuen Server rundum zufrieden. Wir haben es geschafft!
Bei dieser Optimierungsmethode haben wir uns auf die Hauptpunkte konzentriert, mit denen Bitrix interagiert, sowie auf den Test selbst. Kunden achten oft darauf.
Weitere Möglichkeiten zur Verbesserung der Bitrix-Leistung sind die Installation und Konfiguration eines Caching-Dienstes (z. B. Redis). Die CMS-Leistung kann sinken, aber die Gesamtleistung der Site sollte besser sein. Darüber hinaus können Sie php-fpm verwenden. In unserem Fall wäre es jedoch irrational, das ursprünglich für Bitrix konfigurierte Betriebssystem neu zu erstellen.
Sie können auch mit den MySQL-Einstellungen herumspielen. Sie sind für jedes Projekt und jede Konfiguration individuell, daher gibt es kein perfektes Rezept. Es wird interessant sein, Ihre Life-Hacks für die Optimierung von Projekten in Bitrix zu kennen. Teilen Sie Ihre Meinung in den Kommentaren.