mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-18027: Running out of file descriptors and eventual crash
For automatic number of opened files limit take into account number of table instances for table cache
This commit is contained in:
@ -1519,7 +1519,7 @@ sysdate-is-now FALSE
|
|||||||
table-cache 421
|
table-cache 421
|
||||||
table-definition-cache 400
|
table-definition-cache 400
|
||||||
table-open-cache 421
|
table-open-cache 421
|
||||||
table-open-cache-instances 8
|
table-open-cache-instances 1
|
||||||
tc-heuristic-recover OFF
|
tc-heuristic-recover OFF
|
||||||
thread-cache-size 151
|
thread-cache-size 151
|
||||||
thread-pool-idle-timeout 60
|
thread-pool-idle-timeout 60
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
select @@global.host_cache_size;
|
select @@global.host_cache_size;
|
||||||
@@global.host_cache_size
|
@@global.host_cache_size
|
||||||
632
|
653
|
||||||
|
@ -4432,7 +4432,7 @@ static int init_common_variables()
|
|||||||
min_connections= 10;
|
min_connections= 10;
|
||||||
/* MyISAM requires two file handles per table. */
|
/* MyISAM requires two file handles per table. */
|
||||||
wanted_files= (extra_files + max_connections + extra_max_connections +
|
wanted_files= (extra_files + max_connections + extra_max_connections +
|
||||||
tc_size * 2);
|
tc_size * 2 * tc_instances);
|
||||||
#if defined(HAVE_POOL_OF_THREADS) && !defined(__WIN__)
|
#if defined(HAVE_POOL_OF_THREADS) && !defined(__WIN__)
|
||||||
// add epoll or kevent fd for each threadpool group, in case pool of threads is used
|
// add epoll or kevent fd for each threadpool group, in case pool of threads is used
|
||||||
wanted_files+= (thread_handling > SCHEDULER_NO_THREADS) ? 0 : threadpool_size;
|
wanted_files+= (thread_handling > SCHEDULER_NO_THREADS) ? 0 : threadpool_size;
|
||||||
@ -4461,6 +4461,14 @@ static int init_common_variables()
|
|||||||
if (files < wanted_files && global_system_variables.log_warnings)
|
if (files < wanted_files && global_system_variables.log_warnings)
|
||||||
sql_print_warning("Could not increase number of max_open_files to more than %u (request: %u)", files, wanted_files);
|
sql_print_warning("Could not increase number of max_open_files to more than %u (request: %u)", files, wanted_files);
|
||||||
|
|
||||||
|
/* If we required too much tc_instances than we reduce */
|
||||||
|
SYSVAR_AUTOSIZE_IF_CHANGED(tc_instances,
|
||||||
|
(uint32) MY_MIN(MY_MAX((files - extra_files -
|
||||||
|
max_connections)/
|
||||||
|
2/tc_size,
|
||||||
|
1),
|
||||||
|
tc_instances),
|
||||||
|
uint32);
|
||||||
/*
|
/*
|
||||||
If we have requested too much file handles than we bring
|
If we have requested too much file handles than we bring
|
||||||
max_connections in supported bounds. Still leave at least
|
max_connections in supported bounds. Still leave at least
|
||||||
@ -4468,7 +4476,7 @@ static int init_common_variables()
|
|||||||
*/
|
*/
|
||||||
SYSVAR_AUTOSIZE_IF_CHANGED(max_connections,
|
SYSVAR_AUTOSIZE_IF_CHANGED(max_connections,
|
||||||
(ulong) MY_MAX(MY_MIN(files- extra_files-
|
(ulong) MY_MAX(MY_MIN(files- extra_files-
|
||||||
min_tc_size*2,
|
min_tc_size*2*tc_instances,
|
||||||
max_connections),
|
max_connections),
|
||||||
min_connections),
|
min_connections),
|
||||||
ulong);
|
ulong);
|
||||||
@ -4481,7 +4489,7 @@ static int init_common_variables()
|
|||||||
*/
|
*/
|
||||||
SYSVAR_AUTOSIZE_IF_CHANGED(tc_size,
|
SYSVAR_AUTOSIZE_IF_CHANGED(tc_size,
|
||||||
(ulong) MY_MIN(MY_MAX((files - extra_files -
|
(ulong) MY_MIN(MY_MAX((files - extra_files -
|
||||||
max_connections) / 2,
|
max_connections) / 2 / tc_instances,
|
||||||
min_tc_size),
|
min_tc_size),
|
||||||
tc_size), ulong);
|
tc_size), ulong);
|
||||||
DBUG_PRINT("warning",
|
DBUG_PRINT("warning",
|
||||||
|
Reference in New Issue
Block a user