Od dwóch dni widać po wykresach, że aplikacja bierze więcej pamięci i system zabija procesy, a raz nawet wszystko siadło. Po aplikacji klika ~ 1000 użytkowników.
Wydaje mi się, że ten fragment kodu może być przyczyną (jedyny sensowny kandydat z tego co weszło na produkcję, z uwagi na rekurencyjne iteracje po tablicy i przestawianie elementów):
$wsof = $webcare->lookupService('RemoteCalendar');
$response = json_decode(json_encode($wsof->call_getAdvisors()), true);
$wsof->save();
$response['advisors'] = array();
// for($i = 0; $i < 10000; $i++) {
// $response['advisors'][] = array('branch' => array('name' => 'test'));
// }
array_walk($response['advisors'], function(&$el) {
$el['branch_name'] = $el['branch']['name'];
unset($el['branch']);
});
$response['advisors'] = ArrayAggregator::aggregate(
$response['advisors'], 'branch_name'
);
Klasa ArrayAggregator
jest tu: http://4programmers.net/Pastebin/5676
Spróbowałem wykonać ab -c 100 -n 1000 http://localhost:8080/detail.php\?getAdvisors
ale nie bardzo wiem jak to zinterpretowac (zakomentowany fragment kodu wyżej był używany zamiast wyniku zwracanego przez ws). Wynik w zał.
Jak w tym czasie odpaliłem htop
to od cholery było tam /usr/sbin/apache2 -k start
i pierwsze 8-10 żarło po 10 CPU%
Czy takie operacje na tablicy jak wyżej mogą być przyczyną gdy klika po aplikacji 1000 userów, czy powinienem szukać dalej?