মাইএসকিউএল ওপেন_ফাইল_লিমিট - এই পরিবর্তনশীলটি পরিবর্তন করতে পারে না


17

আমি ইস্যুতে দৌড়াচ্ছি কারণ আমার open_files_limitমাইএসকিএল কেবলমাত্র 1024

সেন্টস 7, মাইএসকিউএল কমিউনিটি সার্ভার 5.6.22-লগ

এটি আসলে কোনও ডাব্লুএইচএম সার্ভারের (রিমোট মাইএসকিএল) জন্য মাইএসকিএলকে উত্সর্গীকৃত একটি ভিপিএস, তবে এটি পয়েন্টের পাশে হওয়া উচিত।


ফাইলগুলি কনফিগার করুন

my.cnf:

[mysqld]
open_files_limit = 100000
open-files-limit = 100000 #I've read that the dashes are required on older versions, but I threw it in anyway.
innodb_buffer_pool_size = 600M
...

# and the same for mysqld_safe
[mysqld_safe]
open_files_limit = 100000
open-files-limit = 100000
...

/etc/security/limits.conf:

*       hard    nofile  100000
*       soft    nofile  100000

কমান্ড আউটপুট

মূলের জন্য আমার ওপেন ওপেন_ফাইলস_মিলিট:

[root@mack ~]# ulimit -Hn -Sn
open files                      (-n) 100000
open files                      (-n) 100000

এবং তারপরে mysql ব্যবহারকারী হিসাবে:

[root@mack ~]# su mysql
bash-4.2$ ulimit -Hn -Sn
open files                      (-n) 100000
open files                      (-n) 100000

মাইএসকিউএল স্থিতি:

[root@mack ~]# service mysql status
Redirecting to /bin/systemctl status  mysql.service
mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
   Active: active (running) since Wed 2014-12-24 10:41:09 EST; 40min ago
  Process: 2982 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 2970 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 2981 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ââ2981 /bin/sh /usr/bin/mysqld_safe
           ââ3268 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --open-files-limit=100000 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/my...

Dec 24 10:41:08 mack systemd[1]: Starting MySQL Community Server...
Dec 24 10:41:09 mack mysqld_safe[2981]: 141224 10:41:09 mysqld_safe Logging to '/var/log/mysqld.log'.
Dec 24 10:41:09 mack mysqld_safe[2981]: 141224 10:41:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Dec 24 10:41:09 mack systemd[1]: Started MySQL Community Server.

এটি বন্ধ হয়ে গেছে তা নিশ্চিত করার জন্য আমি মাইএসকিএল পুনরায় চালু করেছি, থামিয়েছি, চেক অবস্থাটি পরীক্ষা করেছি, তারপরে এটি শুরু করে পুরো সিস্টেমটি পুনরায় বুট করেছি।

প্রমাণ যে my.cnfকাজ করে:

mysql> show global variables like '%buffer_pool_size%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 629145600 |
+-------------------------+-----------+
1 row in set (0.00 sec)

এখন আমার ব্লাড প্রেসারটি এখানে চলে গেছে:

mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 1024  |
+------------------+-------+
1 row in set (0.00 sec)

আমি কী মিস করছি? আর কোনও মাই সিএনএফ আছে যা আমার মানকে ওভাররাইট করছে?

[root@mack ~]# find / -name "*.cnf"
/usr/share/mysql/my-default.cnf
/usr/share/doc/mysql-community-server-5.6.22/my-default.cnf
/var/lib/mysql/auto.cnf
/etc/my.cnf
/etc/pki/tls/openssl.cnf

আমি তাদের সবার দিকে নজর রেখেছি এবং ওপেন_ফাইলস_মিলিটের কোনও উল্লেখ নেই। এটির হেকের জন্য, আমি grepসেটিংটি সন্ধান করছি:

[root@mack ~]# grep -r "open_files_limit" /etc
/etc/my.cnf:open_files_limit = 100000
/etc/my.cnf:open_files_limit = 100000
[root@mack ~]# grep -r "open_files_limit" /var
[root@mack ~]# grep -r "open_files_limit" /usr
/usr/share/vim/vim74/syntax/ora.vim:syn keyword oraKeywordUnd     _number_cached_attributes _offline_rollback_segments _open_files_limit
Binary file /usr/sbin/mysqld matches
Binary file /usr/sbin/mysqld-debug matches
Binary file /usr/bin/mysqlbinlog matches
/usr/bin/mysqld_safe:      --open_files_limit=*) open_files="$val" ;;

কিন্তু না, তারা এটি প্রভাবিত করে না।


1
এখানে পুনর্সূচনা সময় মাইএসকিউএল লগ থেকে একটি খোশগল্প আছে: 2014-12-24 10:41:09 3268 [Warning] Buffered warning: Could not increase number of max_open_files to more than 1024 (request: 100000)। এর অর্থ মাইএসকিউএল এর সীমা বাড়ানোর চেষ্টা করছে increase
ব্যবহারকারী 24601

উত্তর:


18

আমার সম্পাদনা /usr/lib/systemd/system/mysqld.serviceএবং যোগ করার দরকার ছিল

LimitNOFILE=infinity
LimitMEMLOCK=infinity

তারপরে রান করুন systemctl daemon-reloadএবং systemctl restart mysql.service

ভেরিয়েবলটি 65536কোনও কারণে অজানা কারণে ক্যাপড হয়েছে তবে আমি আপাতত সেই সাথে বেঁচে থাকতে পারি।

এটি /unix/152186/mysql-max-open-files-more-than-1024#answer-157910 এ পাওয়া গেছে


4
/ Usr / lib / ফাইলটিতে এটি সম্পাদনা না করার জন্য একটি সতর্কতা রয়েছে। সেন্টোস 7-তে মারিয়াডিবি-র জন্য আমি /etc/systemd/system/mariadb.service.d/limits.confনিম্নলিখিত লিখিত সামগ্রী দিয়ে একটি ফাইল তৈরি করেছি[Service] LimitNOFILE=infinity LimitMEMLOCK=infinity
ক্রিস হুইলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.