Hi, David.
On 26.07.2013, at 4:03, David Stone <
da...@nnucomputerwhiz.com> wrote:
> I am investigating using AiP in a symfony based project for a very high traffic site and was wondering if AiP has been used in a large production environment before. I have been very impressed with the performance gains so far with requests being processed 2-4x faster.
AiP was used in "large production environments" before, and it showed itself as a stable product, but I'm not sure about current projects.
I, myself, didn't use it for quite some time. Though, I have plans for applying it to my current project, so, development will restart quite soon.
> I noticed the max-children didn't seem to do anything as the number of workers was always min-children no matter how much traffic there was. Is it not possible to autoscale based on how many workers are busy?
max-children is ignored in current code. that's true.
patches are welcome :)
> Also I noticed that memory usage seemed to slowly increase after 1000+ requests. Probably an issue with our own application code and not AiP. I think maybe adding an option to restart workers after X requests would help reclaim the memory.
This should be easily doable in application code.
Transports have ->unloop() method which marks worker to termination after finishing current requests.
But I suggest you to do a longer test.
It is quite possible that memory will stop growing after 50000 requests, for example.
PHP never frees memory it took, but it actively reuses memory. It might take a lot of requests to allocate enough buffers for shuffling around.
> Added those two features would help make this production ready but is there anything else you're aware of that would cause problems on a very busy site? Is anyone using AiP regularly right now?
--
Alexey Zakhlestin
CTO at Grids.by/you
https://github.com/indeyets
PGP key:
http://indeyets.ru/alexey.zakhlestin.pgp.asc