Как правило, многие открытые столы не о чем беспокоиться. Если вы приближаетесь к пределам ОС, вы можете увеличить эти пределы в настройках ядра:
How do I change the number of open files limit in Linux?
MySQL открывает таблицы для каждой сессии независимо друг от друга, чтобы лучше параллелизма.
В table_open_cache и max_connections системные переменные влияют на максимальное количество файлов, сервер держит открытыми. Если вы увеличите одно или оба из этих значений, вы можете столкнуться с лимитом, накладываемым вашей операционной системой на число процессов для открытых файловых дескрипторов. Многие операционные системы позволяют увеличить ограничение на открытые файлы, хотя этот метод сильно варьируется от системы к системе.
Более подробно это объясняется здесь
http://dev.mysql.com/doc/refman/5.5/en/table-cache.html
EDIT
Для проверки предположения можно уменьшить max_connections
и table_open_cache
временно SET GLOBAL table_open_cache := newValue
.
Значение может быть настроено динамически без перезагрузки сервера.
Предыдущий MySQL 5.1 эта переменная называется table_cache
То, что я пытался сказать, заключается в том, что уменьшение этого значения, вероятно, даже негативно скажется на производительности с точки зрения менее возможных параллельных чтений (очередь будет длиннее), вместо этого вы должны попытаться увеличьте предел ОС и увеличьте max_open_files
, но, возможно, я просто не вижу смысла здесь
Thx для ввода ur Michel. Да, я знаю, что таблицу можно открывать несколько раз с помощью параллельных подключений, но моя главная проблема здесь в том, что я считаю, что ввод-вывод на сервере сильно искалечен тем фактом, что в mysql есть много открытых файлов. Это мое предположение, которое может быть недействительным. – Stephan
, чтобы проверить, что вы можете временно уменьшить 'max_connections' и' table_open_cache' на 'SET GLOBAL table_open_cache: = newValue'. До MySQL 5.1 эта переменная называется [table_cache] (http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_table_cache). Значение может быть настроено динамически без перезагрузки сервера. –
Да, ур, я попробую. Также в отношении предложения ur увеличить лимит мы уже имеем open_files_limit = 200k, и он еще не достигнут. – Stephan