[ic] Time for new hardware?

Grant emailgrant at gmail.com
Sun Sep 25 00:35:12 UTC 2016


>>>> I've been making a lot of optimizations lately and I think I'm to the
>>>> point where my 4 cores just aren't able to keep up with demand during
>>>> peak traffic hours each day.  Pages load quickly when I see fewer than
>>>> 4 busy interchange processes in top but things slow down drastically
>>>> after that.  Once I'm OK with the degree of optimization my ITL pages
>>>> have undergone and I'm not IO-bound or memory-bound, is it time to
>>>> throw CPU at the problem?
>>>>
>>>> I'm a little puzzled because I've seen my server perform much better
>>>> under much greater loads in the past.  I thought my growing mysql
>>>> tables could be the problem so I set up indexes and it has helped but
>>>> my server still struggles under loads it used to handle without issue.
>>>> I did notice that my tables are split about 50/50 between InnoDB and
>>>> MyISAM and I'd like to make all of them InnoDB.
>>>>
>>>> - Grant
>>>
>>> Yeah, I would recommend to switch all them to InnoDB for consistency
>>> and real transactions.
>>>
>>> You probably can find sufficient resources on MySQL optimization with
>>> InnoDB if that is your bottleneck.
>>
>>
>> Actually IO doesn't seem to be a bottleneck at this point.  It seems
>> to be CPU as things slow down once I have 4 busy interchange processes
>> on my quad-core CPU and iotop does not show much activity at that
>> point.  Besides ITL optimization, is this a clear case of needing a
>> faster CPU and more cores or is there anything else to consider first?
>>
>>
>>> May I ask which webserver you are using?
>>
>>
>> I'm using nginx reverse proxied to apache2.
>>
>> - Grant
>
> Did you consider to get rid of Apache?


It turned out apache2 was part of the problem.  This was a combination
of not enough apache2 processes as well as Odoo (formerly known as
OpenERP) causing some kind of issue I haven't figured out yet.  The
fact that there were two problems made it much more difficult to
figure out.

I was surprised I needed more apache2 processes because mine are
always idle or nearly idle, even during periods of high traffic.  With
nginx acting as a reverse proxy to apache2, I think each request that
hits interchange monopolizes an apache2 processes even if that process
isn't using CPU.

Odoo also operates behind an nginx reverse proxy on my machine and it
causes the TCP Queuing graph in munin to go crazy and disrupts
interchange service whenever someone is using it.  I still don't know
why.

- Grant



More information about the interchange-users mailing list