Hallo,
Folgendes Problem:
Wir haben einen physikalischen Server mit folgender Hardware:
Auf diesem Server liegen 2 mit Hyper-V virtualisierte Server
Alle Server laufen unter Windows Server 2012.
Versionen:
Auf dem Apache (Server 2) liegt ein "CRM/Projektverwaltungs"-Programm, welches mit Apache/MySQL läuft. Der Quellcode des Programms ist (größtenteils) mit ionCube geschützt.
In diesem Programm sind (aus Lizenzgründen) max. 70 Leute gleichzeitig angemeldet.
Unter anderem legt dieses Programm Dateien (Word, Excel, ...) auf Server 1 ab.
Ausserdem habe ich noch 2 selbst programmierte Anwendungen (PHP/AJAX/MySQL) auf dem Server, in denen prinzipiell alle (ca. 100) gleichzeitig arbeiten können.
Jetzt haben wir immer wieder Probleme mit der gekauften Anwendung.
Zuerst hatten wir immer wieder Fehlermeldungen, dass der Arbeitsspeicher nicht ausreicht...
Da meinte der Support zuerst, das würde an einem Bug im Apache liegen... Nach langem hin und her haben die aber ein paar Einstellungen gemacht, und seit dem kommt dieser Fehler nicht mehr.
Jetzt kommt (oder kam) aber ein anderer Fehler:
Die selbst programmierten Anwendungen laufen dabei problemlos. Auch die Darstellung mehrerer Tausend Datensätze mit aufwändigen Verknüpfungen usw. dauert zwar etwas, funktioniert aber hier problemlos.
Zuerst habe die Einstellungen max_execution_time und max_input_time auf 600 gesetzt und trotzdem kommt die selbe Meldung mit "300 seconds".
Dann habe ich mir die Dateien und Zeilen, die in der Fehlermeldung stehen etwas genauer angeschaut.
Die verweisen eigentlich immer auf die Funktion is_readable(). Teilweise sogar noch in Kombination mit file_exists().
Da diese Funktion ja nur testet, ob eine Datei lesbar ist, habe ich sie testweise auskommentiert. Und seit dem läuft (erstmal) alles wunderbar.
Das (Haupt-)Problem ist also anscheinend der Dateizugriff vom Apache (auf Server 2) aus vermutlich auf den Datenserver (Server 1).
Da ich jetzt nicht genau weiß, wann und wie das Programm diese Unterfunktionen mit is_readable() einsetzt, und weils vermutlich sogar lizenzrechtlich nicht astrein ist, wenn ich den Code ändere, habe ich damit ein ungutes Gefühl...
Vielleicht ist auch der betroffene Code im nächsten Update geschützt und ich komme an die Funktion gar nicht mehr ran.
Darum jetzt meine Frage:
An welchen Einstellungen/Konfigurationen usw. könnte man evtl. schrauben, um das Problem auch ohne Änderungen am Quellcode zu beheben?
Hat da jemand einen Tipp für mich?
Vielen Dank
Gruß
Stefan
Folgendes Problem:
Wir haben einen physikalischen Server mit folgender Hardware:
- 2 x Intel Xeon E5-2620 v2 @2,1GHz (also 6 Prozessorkerne)
- 64GB RAM
- 2 x 256GB SSD (RAID 1)
- 6 x 1TB HDD (RAID 5)
Auf diesem Server liegen 2 mit Hyper-V virtualisierte Server
- Server 1 ist AD DS und Dateiserver und liegt auf der HDD.
Er hat 16GB RAM zugewiesen - Server 2 ist Printserver und auf ihm liegt der Webserver (Apache) und die Datenbanken (MySQL und SQL-Server).
Er liegt komplett auf der SSD-Platte und hat 32GB RAM zugeordnet.
Alle Server laufen unter Windows Server 2012.
Versionen:
- Apache 2.4.17 (Win32)
- PHP 5.6.19
- MySQL 5.6.14
Auf dem Apache (Server 2) liegt ein "CRM/Projektverwaltungs"-Programm, welches mit Apache/MySQL läuft. Der Quellcode des Programms ist (größtenteils) mit ionCube geschützt.
In diesem Programm sind (aus Lizenzgründen) max. 70 Leute gleichzeitig angemeldet.
Unter anderem legt dieses Programm Dateien (Word, Excel, ...) auf Server 1 ab.
Ausserdem habe ich noch 2 selbst programmierte Anwendungen (PHP/AJAX/MySQL) auf dem Server, in denen prinzipiell alle (ca. 100) gleichzeitig arbeiten können.
Jetzt haben wir immer wieder Probleme mit der gekauften Anwendung.
Zuerst hatten wir immer wieder Fehlermeldungen, dass der Arbeitsspeicher nicht ausreicht...
Da meinte der Support zuerst, das würde an einem Bug im Apache liegen... Nach langem hin und her haben die aber ein paar Einstellungen gemacht, und seit dem kommt dieser Fehler nicht mehr.
Jetzt kommt (oder kam) aber ein anderer Fehler:
Code:
Maximum execution time of 300 seconds exceeded in C:\\xampp\\htdocs\\...
Zuerst habe die Einstellungen max_execution_time und max_input_time auf 600 gesetzt und trotzdem kommt die selbe Meldung mit "300 seconds".
Dann habe ich mir die Dateien und Zeilen, die in der Fehlermeldung stehen etwas genauer angeschaut.
Die verweisen eigentlich immer auf die Funktion is_readable(). Teilweise sogar noch in Kombination mit file_exists().
Da diese Funktion ja nur testet, ob eine Datei lesbar ist, habe ich sie testweise auskommentiert. Und seit dem läuft (erstmal) alles wunderbar.
Das (Haupt-)Problem ist also anscheinend der Dateizugriff vom Apache (auf Server 2) aus vermutlich auf den Datenserver (Server 1).
Da ich jetzt nicht genau weiß, wann und wie das Programm diese Unterfunktionen mit is_readable() einsetzt, und weils vermutlich sogar lizenzrechtlich nicht astrein ist, wenn ich den Code ändere, habe ich damit ein ungutes Gefühl...
Vielleicht ist auch der betroffene Code im nächsten Update geschützt und ich komme an die Funktion gar nicht mehr ran.
Darum jetzt meine Frage:
An welchen Einstellungen/Konfigurationen usw. könnte man evtl. schrauben, um das Problem auch ohne Änderungen am Quellcode zu beheben?
Hat da jemand einen Tipp für mich?
Vielen Dank
Gruß
Stefan
Kommentar