Tako, nocoj smo spet imeli cpu na 100% celo noč …
kriv je bil multi_curl, oziroma niti ne točno to … ampak while zanka. Če si pogledamo večina primerov za multi_curl na internetu izgledajo nekako tako …
...
do
{
curl_multi_exec($mh,$running);
} while ($running > 0);
....
kar sicer dela, vendar pa tudi procesor nabija na 100%, če imate recimo 2x Xeon 5110 z 8Gb rama, lahko pričakujete 100% CPU load tudi če se skipta nebo dosti izvajala …
No problem lahko rešimo lepo z usleep, http://si.php.net/usleep ….
...
do
{
// added a usleep for 0.25 seconds to reduce load
usleep (250000);
curl_multi_exec($mh,$running);
} while ($running > 0);
....
lahko zakasnite tudi za manj kot 0,25 sekunde, vsekakor pa ni kul če vam bo neka while zanka brez zveze žgala po strežniku, vam nabijala CPU na 100% in s tem upočasnjevala še druge stvari …
.