Wiki-Quellcode von Kopano Optimierungen

Version 2.2 von Jens Gruber am 2022/05/02 11:16

Zeige letzte Bearbeiter
1 Es gibt mehrere Anpassungen die sich anbieten um den laufenden Betrieb von Kopano zu verbessern. Folgende Maßnahmen können optional genutzt werden:
2
3 {{toc start="5"/}}
4
5
6 ===== **__Zustellbarkeit der Unzustellbarkeits-Nachrichten verbessern__** =====
7
8 Es ist möglich die Zustellbarkeit der Unzustellbarkeits-Nachrichten für den Absender zu verbessern. Dafür ist es notwendig den SMTP-Server des gewählten Mailproviders als Smarthost einzutragen.
9
10
11 Bearbeiten Sie in die Datei kopano-g1.yaml im puppeteer Container:
12
13 {{code language="bash"}}
14 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/kopano-g1.yaml
15 {{/code}}
16
17
18 Die Zeile "ld_kopano::postfix::hashes:" beschreibt das Handling für den Null-Sender. Fügen Sie nun die Zeile "<> smtp.meineschule.de" ein (Ergänzen Sie die smtp Adresse durch die von ihnen genutzte).
19
20 {{code language="bash"}}
21 ld_kopano::postfix::hashes:
22   '%{dir_etc}/sender_dependent_relayhost_maps_external.hash':
23     content: |
24       %{header}
25       <> smtp.meineschule.de
26       @meineschule.de smtp.meineschule.de
27 {{/code}}
28
29
30 ===== **__Anbindung/Akkulaufzeit von Endgeräten verbessern__** =====
31
32 Bei Verwendung des ActiveSync-Protokolls bzw. Kopano Z-Push zur Anbindung von Endgeräten (Smartphones, Tablets, MS Outlook 2013/2016/2019 Clients) empfiehlt es sich, auf die HTTP-KeepAlive Einstellungen für die Webserver-Dienste in der Verbindungskette (Rev-Proxy → Kopano-Server) Einfluss zu nehmen.
33
34 Der KeepAlive-Wert wird bewusst hoch gewählt, damit Verbindungen zwischen Client und Kopano-Server länger offen gehalten werden können. Dadurch schont man die Batterie und Laufzeit von mobilen Geräten, da es sich u.a. auf den Standby-Betrieb von Smartphones auswirkt (der nicht permanent unterbrochen wird zum Starten einer neuen Verbindung).
35
36
37 Zum erhöhen der TimeOuts öffnen Sie die kopano-g1.yaml:
38
39 {{code language="bash"}}
40 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/kopano-g1.yaml
41 {{/code}}
42
43
44 Fügen Sie folgende Zeilen am Ende der Datei ein:
45
46 {{code language="bash"}}
47 apache::keepalive: 'On'
48 apache::keepalive_timeout: '45'
49 apache::max_keepalive_requests: '500'
50 apache::mod::prefork::maxclients: '384'
51 apache::mod::prefork::serverlimit: '384'
52
53 nginx::keepalive_timeout: 3600
54 nginx::keepalive_requests: 500
55 {{/code}}
56
57
58 Zusätzlich müssen Sie die Datei rev-proxy.yaml erstellen/bearbeiten:
59
60 {{code language="bash"}}
61 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/rev-proxy.yaml
62 {{/code}}
63
64
65 Ergänzen/Befüllen Sie die Datei mit folgendem Inhalt:
66
67 {{code language="bash"}}
68 nginx::keepalive_timeout: 3600
69 nginx::keepalive_requests: 500
70 {{/code}}
71
72
73 ===== **__Kopano Leistung verbessern__** =====
74
75 Kopano ist in der Standardinstallation lediglich für den Betrieb von 10 Benutzern ausgelegt. Das heißt, die Kopano-Serverdienste reservieren mit den Standardeinstellungen sehr wenig Systemressourcen (RAM) und die Plattform arbeitet als Konsequenz sehr langsam, wenn deutlich mehr Benutzer ein Postfach erhalten. Man sollte daher in den meisten Fällen die zugeteilten Systemressourcen (deutlich) erhöhen, um ein vernünftiges Nutzererlebnis zu erzielen.
76
77 Um die Einstellungen Puppet-gerecht zu definieren, hilft nachfolgende Auflistung von YAML-Einstellungen. Bei der Auswahl der Werte muss man die **Hardware-Ressourcen** des Servers berücksichtigen, im Beispiel wird von einem leistungsstarken Server mit **32GB** **RAM** und **2 CPU-Sockets** und insgesamt **32 Kernen** ausgegangen.
78
79
80 Bearbeiten Sie in die Datei kopano-g1.yaml im puppeteer Container:
81
82 {{code language="bash"}}
83 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/kopano-g1.yaml
84 {{/code}}
85
86
87 Folgende Parameter können ggf. helfen die Leistung zu verbessern:
88
89 {{code language="bash"}}
90 apache::keepalive: 'On'
91 apache::keepalive_timeout: '45'
92 apache::max_keepalive_requests: '500'
93 apache::mod::prefork::maxclients: '500'
94 apache::mod::prefork::serverlimit: '500'
95
96 ld_kopano::server:
97   settings:
98     cache_cell_size: '6144M'
99     cache_object_size: '16M'
100     cache_indexedobject_size: '32M'
101     enable_sql_procedures: 'yes'
102     # The following 2 settings require a cronjob to run periodically instead (in case the value is disabled)
103     sync_gab_realtime: 'no'
104     softdelete_lifetime: '0'
105 {{/code}}
106
107
108 Zusätzlich muss im Kopano-Container ein Cron-Job eingerichtet werden, sofern man im Abschnitt **ld_kopano::server** die Parameter **sync_gab_realtime** / **softdelete_lifetime** im deaktivierten Zustand eingetragen hat:
109
110 {{code language="bash"}}
111 root@kopano-g1:~ # /etc/cron.d/kopano-optimization
112 {{/code}}
113
114 {{code language="bash"}}
115 # /etc/cron.d/kopano-optimization
116 */30 *  * * *     root   [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --sync 2>&1 >/dev/null
117 0 4  * * *     root   [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --purge-softdelete 30 2>&1 >/dev/null
118 {{/code}}
119
120
121 Folgende Einstellung können für die mysql56.yaml gesetzt werden:
122
123 {{code language="bash"}}
124 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/mysql56.yaml
125 {{/code}}
126
127 {{code language="bash"}}
128 mysql::server::override_options:
129 mysqldump:
130 max_allowed_packet: '1G'
131 mysqld:
132 innodb_file_per_table: true
133 bind-address: '0.0.0.0'
134 skip-name-resolve: true
135 innodb_large_prefix: true
136 innodb_file_format: 'Barracuda'
137 max_allowed_packet: '256M'
138 max_connections: '150'
139 query_cache_limit: '2M'
140 query_cache_size: '64M'
141 thread_stack: '512K'
142 tmp_table_size: '64M'
143 max_heap_table_size: '64M'
144 sort_buffer_size: '2M'
145 join_buffer_size: '2M'
146 table_open_cache: '500'
147 innodb_autoextend_increment: '1000'
148 innodb_buffer_pool_size: '2G'
149 innodb_flush_log_at_trx_commit: '2'
150 innodb_flush_method: 'O_DSYNC'
151 innodb_lock_wait_timeout: '120'
152 innodb_log_buffer_size: '8M'
153 innodb_log_file_size: '1G'
154 innodb_log_files_in_group: '3'
155 innodb_read_io_threads: '4'
156 innodb_write_io_threads: '4'
157 {{/code}}
158
159
160 ===== __**Lokalisierung der Ordner-Strukturen**__ =====
161
162 Zur Lokalisierung der Ordnernamen empfiehlt es sich die Standard-Sprache für die Kopano-Postfächer auf "Deutsch" umzustellen. Führen Sie hierfür folgende Schritte durch:
163
164
165 Wechseln Sie in den Kopano Container:
166
167 {{code language="bash"}}
168 root@ldhost:~ # lxc-ssh -n kopano-g1
169 {{/code}}
170
171
172 Führen Sie folgenden Befehl im Kopano Container aus:
173
174 {{code language="bash"}}
175 root@kopano-g1:~ # echo 'default_store_locale = de_DE.UTF-8 ' >/etc/kopano/admin.cfg
176 {{/code}}
177
178
179 Nach ausführen des Befehls werden neu angelegte Kopano-Postfächer mit der korrekten Sprache erstellt. Für bereits erstellte/vorhandene Postfächer muss man einen extra Schritt durchführen. Setzen sie hierfür folgenden Befehl im Kopano Container ab:
180
181 {{code language="bash"}}
182 root@kopano-g1:~ # kopano-localize-folders -u [username] --lang de_DE.UTF-8
183 {{/code}}
184
185
186 ===== __**Public Folder erstellen**__ =====
187
188 Es kann sich anbieten einen Public Folder als gemeinsamen Ordner für alle Benutzer zu erstellen. Hierfür müssen Sie folgenden Befehl eingeben:
189
190 {{code language="bash"}}
191 root@kopano-g1:~ # kopano-admin -s
192 {{/code}}
193
194
195 ===== __**Cronjob für Wartungsaufgaben**__ =====
196
197 Durch das Anlegen eines zusätzlichen Cronjobs, lassen sich Wartungsaufgaben automatisch zu bestimmten Zeiten durchführen. Folgenden Cronjob können Sie bei Bedarf erstellen:
198
199 {{code language="bash"}}
200 # /etc/cron.d/kopano-optimization
201 */30 * * * * root [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --sync 2>&1 >/dev/null
202 0 4 * * * root [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --purge-softdelete 30 2>&1 >/dev/null
203 {{/code}}
204
205
206 Netzlaufwerke im Kopano