InnoDB performance drop in 5.7 because of the lru_manager
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Percona Server moved to https://jira.percona.com/projects/PS |
Expired
|
Undecided
|
Unassigned |
Bug Description
Hi,
I'm investigating a performance regression in InnoDB between 5.6 & 5.7.
I noticed a lot of time is spent in os_thread_sleep called from buf_lru_
Is there any way to avoid this (my configuration is using innodb_
Poor's man profiler result :
89 pthread_
24 nanosleep,
23 pthread_
23 pthread_
1 test_quick_
1 ??,sigwaitinfo,
[...]
Thanks!
Jocelyn
jocelyn fournier (joce) wrote : | #1 |
jocelyn fournier (joce) wrote : | #2 |
A few useful variables used in my case :
innodb_
innodb_
innodb_
innodb_
innodb_
Percona version was 5.7.17, I'm currently testing 5.7.18 with the improved LRU manager.
Thanks for your bug report. I am not sure that the sleep itself here is a problem - the key for LRU threads is to flush the right amount of pages at the right time - whether the "right time" is reached by sleep or by event wait should be secondary to the choice of heuristics. But perhaps an event wait would allow to implement better heuristics than sleep.
How does 5.7.18 testing look?
tags: | added: lru-flusher |
tags: | added: performance |
jocelyn fournier (joce) wrote : | #4 |
Hi Laurynas!
Unfortunately, 5.7.18 doesn't really change much in my case.
I see. Back to original issue, the mapping between LRU managers and buffer pool instances is 1:1 by design, and the only way to reduce the LRU manager number is to reduce the buffer pool instance count.
Then, mistuned LRU flushing could manifest in different ways, the more serious one is the lack of free pages. That is seen in PMP as stacktraces involving buf_LRU_
Thus, I don't see immediate evidence that your performance drop is directly related to LRU flushing yet. Perhaps you can provide further details about the drop itself?
Changed in percona-server: | |
status: | New → Incomplete |
Launchpad Janitor (janitor) wrote : | #6 |
[Expired for Percona Server because there has been no activity for 60 days.]
Changed in percona-server: | |
status: | Incomplete → Expired |
Shahriyar Rzayev (rzayev-sehriyar) wrote : | #7 |
Percona now uses JIRA for bug reports so this bug report is migrated to: https:/
Why not using an event wait which would trigger a thread wakeup once the bufpool free list reaches some defined threshold - and perhaps auto adjust this threshold - instead of currently auto adjusting the lru_sleep_time in buf_lru_ manager_ adapt_sleep_ time()?