witam Was,
mam taki problem z wydajnością PHP+Firebird i nie wiem jak sobie z tym poradzić. Może dla jasności opiszę w podpunktach:
- Maszyna Linux 32bit z procesorem Core 2 Quad, PHP wersja 5.2.8, Firebird Classic wersja 1.5.6, dysk SSD, Apache2, Mysql,
- Maszyna Linux 64bit z procesorem i7 Haswell, PHP wersja 5.4.20, Firebird Classic wersja 1.5.6, dysk SSD, Apache profork, MariaDB
a) Jak uruchomię na maszynie 1 aplikację w PHP to działa szybko i wykazuje pełne obciążenie procesora(rdzeni).
b) Jak uruchomię na maszynie 2 aplikację w PHP to działa wolno i wykazuje obciążenie procesora (rdzeni) rzędu kilku %.
c) PHP+Mysql działa błyskawicznie na maszynie 2, na 1 względnie.
d) Eksperymentalnie uruchomiłem Firebird i bazy Firebirda na maszynie 2, a aplikację PHP na maszynie 1, ustanawiając połączenie do baz Firebirda na maszynie 2 - działa błyskawicznie.
e) Eksperymentalnie uruchomiłem Firebird i bazy Firebirda na maszynie 1, a aplikację PHP na maszynie 2, ustanawiając połączenie do baz Firebirda na maszynie 1 - działa błyskawicznie.
Podsumowanie:
Wychodzi na to, że PHP i Firebird na jednej maszynie z procesorem i7 nie działa sprawnie. Przeniesienie baz Firebird na inny dysk, w obrębie tej samej maszyny tez nic nie daje. Zapytanie w PHP do bazy firebirda, które wykonuje się na maszynie 1 (o słabszych parametrach) wykonuje się szybciej o 5-10 razy niż na maszynie nowszej. Za to PHP+Mysql wykonuje się szybciej o 6 razy.
Skrypt PHP jest to select bez JOIN-ów chodzący w pętli i dla 100 razy trwa to 65 sekund na maszynie nowej, na starej jakieś 5 sekund.
Ogólnie sytuacja jest związana z przenosinami na nowszy sprzęt i o ile PHP+Mysql działa wydajniej, to PHP+Firebird mniej wydajnie.
Poza tym jak do bazy jest ścieżka do innego kompa to na nowym działa również szybko, a na localhost wolno.
Proszę o pomoc co może być przyczyną i co zrobić aby to płynnie chodziło?