Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 16. Mai 2016 12:32
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.918
- Webseite
[GELÖST] AUTOCOMMIT in AdoLite deaktivieren?
Ich bin im Moment CMSMS am installieren auf einem virtuellen System mit getrennten Web und Mysql Server. Die Share's sind mit NFS eingebunden, was das System auf File-Ebene für häufige Schreibzugriffe anfällig macht.
CMSMS ist so konfiguriert, dass bei jedem SQL-Statement ein AUTOCOMMIT gemacht wird. Dadurch ergibt sich nach jedem einzelnen UPDATE ein Commit plus ein Flush auf die Disk. Das Resultat ist, dass es bis zu 10 - 15 Sekunden dauert, bis eine Seite gespeichert ist.
Ich habe nun versucht in der mysqli_transaction_module_inc.php das var $autoCommit = true; auf false zu setzen. Danach ging das speichern immer noch 10 Sekunden lang, wurde jedoch nicht mehr bestätigt, resp. ergab es keine Weiterleitung auf die listcontent.php mehr. Hat einer von euch eine Ahnung ob es überhaupt möglich ist, AdoLite hier umzukonfigurieren?
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#2 16. Mai 2016 15:00
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] AUTOCOMMIT in AdoLite deaktivieren?
CMSMS ist so konfiguriert, dass bei jedem SQL-Statement ein AUTOCOMMIT gemacht wird.
Meinst du jetzt per default? Oder hast DU das in dem speziellen Fall so gemacht?
Ich habe nun versucht in der mysqli_transaction_module_inc.php das var $autoCommit = true; auf false zu setzen.
?
CMSMS verwendet keine Transaktionen - das ist auch der Grund, weshalb ich aus Performance-Gründen empfehle, in der adodb.functions.php, Zeile 51
$str = 'pear:date:extend:transaction';
durch
$str = 'pear:date:extend';
zu ersetzen. Ist wohl auch der Grund, weshalb es da in der config.php keinen Parameter gibt, um dort etwas zu ändern.
Oder hab ich da jetzt etwas falsch verstanden?
Falls du die Transactionen brauchst, sollte es funktionieren, wenn du hinter Zeile 52
$dbinstance = ADONewConnection($config['dbms'], $str);
dies
$dbinstance ->autoCommit = false;
einfügst.
Alternativ könntest du noch den Datenstrom zur Datenbank komprimieren
http://www.cmsmadesimple.de/dokumentati … ieren.html
Beitrag geändert von Andynium (16. Mai 2016 15:04)
Offline
#3 16. Mai 2016 17:13
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.918
- Webseite
Re: [GELÖST] AUTOCOMMIT in AdoLite deaktivieren?
Danke für die Rückmeldung!
Im Log von Mysql war das Autocommit zu sehen. Da in der mysqli_transaction_module_inc.php dies auf true gesetzt war, habe ich mal angenommen, dass dies hier der Grund dazu sei.
Habe mittlerweile auch auf der Mysql Seite weitergesucht und mit folgender Anpassung ein gutes Resultat erzielt:
sync_binlog=256
https://dev.mysql.com/doc/refman/5.5/en … ync_binlog
innodb_flush_log_at_trx_commit=2
https://dev.mysql.com/doc/refman/5.5/en … trx_commit
Damit Problem gelöst.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#4 16. Mai 2016 18:51
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] AUTOCOMMIT in AdoLite deaktivieren?
Du hast also direkt an MySQL rumgeschraubt .
Offline
#5 16. Mai 2016 19:14
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.918
- Webseite
Re: [GELÖST] AUTOCOMMIT in AdoLite deaktivieren?
Genau.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
Seiten: 1