Я получаю сообщение об ошибке «Can't open file: './databasename/tablename.frm' (errno: 24)» из MySQL, но, насколько я могу судить, я установил необходимые ограничения намного выше, чем мне нужно.
Помимо kern.maxfiles
и kern.maxfilesperproc
sysctls и open_files_limit
Переменная MySQL, есть ли какие-либо другие ограничения, которые могут вызвать это?
$ mysql -u root -p -e 'SHOW STATUS' | grep '^Open'
Enter password:
Open_files 356
Open_streams 0
Open_tables 245
Opened_tables 0
$ mysql -u root -p -e 'SHOW GLOBAL VARIABLES' | grep 'open_files_limit'
Enter password:
open_files_limit 18000
$ sysctl -a | grep kern.maxfiles
kern.maxfiles: 20000
kern.maxfilesperproc: 18000
$ limits -n -U mysql
Resource limits for class default:
openfiles infinity
Проблема больше похожа на ошибку, чем на ограничение.
Единственное предложение - обновить до последней стабильной версии MySQL или даже до FreeBSD 7.2 (они превышают почти все ограничения для FreeBSD 7.2 amd64).
какой твой max_connections
Постановка? При каждом подключении должен открываться один (или несколько) файлов. Попробуйте уменьшить. Также table_cache
Настройка может повлиять на количество открытых файлов. Видеть руководство по mysql для получения дополнительной помощи.
CU, arnep