[PATCH 0/2] [tip: sched/core] sched: Disable PLACE_LAG and RUN_TO_PARITY and move them to sysctl
Dietmar Eggemann
dietmar.eggemann at arm.com
Tue Nov 19 02:29:07 PST 2024
On 14/11/2024 21:10, Joseph Salisbury wrote:
Hi Joseph,
> On 10/17/24 01:19, Cristian Prundeanu wrote:
[...]
> Hi Cristian,
>
> This is a confirmation that we are also seeing a 9% performance
> regression with the TPCC benchmark after v6.6-rc1. We narrowed down the
> regression was caused due to commit:
> 86bfbb7ce4f6 ("sched/fair: Add lag based placement")
>
> This regression was reported via this thread:
> https://lore.kernel.org/lkml/1c447727-92ed-416c-bca1-a7ca0974f0df@oracle.com/
>
> Phil Auld suggested to try turning off the PLACE_LAG sched feature. We
> tested with NO_PLACE_LAG and can confirm it brought back 5% of the
> performance loss. We do not yet know what effect NO_PLACE_LAG will have
> on other benchmarks, but it indeed helps TPCC.
Can you try to run mysql in SCHED_BATCH when using EEVDF?
https://lkml.kernel.org/r/20241029045749.37257-1-cpru@amazon.com
The regression went away for me when changing mysql threads to SCHED_BATCH.
You can either start mysql with 'CPUSchedulingPolicy=batch':
#cat /etc/systemd/system/mysql.service
[Service]
CPUSchedulingPolicy=batch
ExecStart=/usr/local/mysql/bin/mysqld_safe
# systemctl daemon-reload
# systemctl restart mysql
or change the policy with chrt for all mysql threads when doing
consecutive test runs starting from the 2. run ('connection' threads
have to exists already)
# chrt -b -a -p 0 $PID_MYSQL
# ps -p $PID_MYSQL -To comm,pid,tid,nice,class
COMMAND PID TID NI CLS
mysqld 4872 4872 0 B
ib_io_ibuf 4872 4878 0 B
...
xpl_accept-3 4872 4921 0 B
connection 4872 5007 0 B
...
connection 4872 5413 0 B
My hunch is that this is due to the 'connection' threads (1 per virtual
user) running in SCHED_BATCH. I yet have to confirm this by only
changing the 'connection' tasks to SCHED_BATCH.
[..]
More information about the linux-arm-kernel
mailing list