Ubuntu: 12.04 LTS (Linux mysql02 3.2.0-40-generic # 64-Ubuntu SMP Mon Mar 25 21:22:10 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux)
MySQL: Bản phân phối Ubuntu 5.5.31
Apparmor: KHÁM PHÁ !
Máy chủ đã hoạt động ổn định trong hơn một năm. Sau đó, thứ hai này MySQL đã bắt đầu thất bại. Một bản cập nhật đã gây ra vấn đề và chúng tôi không thể tìm ra nó là gì. Chúng tôi thậm chí đã cố gắng quay trở lại MySQL 5.5.30 nhưng không có may mắn. Chúng tôi trở lại vào 5.5.31.
Các mục nhật ký lỗi của MySQL:
130430 7:55:46 [ERROR] Error in accept: Too many open files
130430 7:55:46 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/fclvod.frm' (errno: 24)
130430 7:55:46 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/fcnote.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffcont.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffcontv.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/ffnote.frm' (errno: 24)
130430 7:55:47 [ERROR] /usr/sbin/mysqld: Can't open file: './eci_elite_test/frcfcl.frm' (errno: 24)
Có vẻ như chúng ta đang chạy vào vấn đề ulimit. Chúng tôi đã loại bỏ hoàn toàn APPARMOR. Chúng tôi đã tăng /etc/security/limits.conf và vẫn không gặp may:
# Out of desperation....
* soft nofile 49152
* hard nofile 65536
# No effect!?!!?
#mysql soft nofile 49152
#mysql hard nofile 65536
Và để hiển thị các giới hạn. Thông tin đang hoạt động:
root@mysql02:/etc/security# ulimit -Sa | grep "open files"
open files (-n) 49152
root@mysql02:/etc/security# ulimit -Ha | grep "open files"
open files (-n) 65536
Và đây là những mục quan trọng trong my.cnf
[mysqld_safe]
open_files_limit = 16384
[mysqld]
open_files_limit = 16384
Tuy nhiên:
root@mysql02:/etc/mysql# mysqladmin -u root -pThePassword variables| grep open_files_limit
open_files_limit | 1024
Chúng tôi hoàn toàn bối rối và suy sụp. Bất kỳ sự trợ giúp nào cũng sẽ được đánh giá cao.