Mysql 5.5 में ओपन-फाइल-लिमिट बदलना


9

मैं mysql 5.5 के साथ Ubuntu 12.04 पर चलने वाली ओपन-फाइल-लिमिट पैरामीटर के साथ एक समस्या कर रहा हूं।

मैंने हाल ही में 1024 सीमा के कारण कुछ समस्याओं पर ध्यान दिया है, और वास्तव में मुख्य प्रणाली सीमा 1024 पर सेट की गई थी, इसलिए मैंने निम्नलिखित के साथ /etc/security/limits.conf को संशोधित किया:

* soft nofile 32000
* hard nofile 32000
root soft nofile 32000
root hard nofile 32000

उसके बाद मैं रूट के लिए ulimit मान और यहां तक ​​कि mysql उपयोगकर्ता के लिए भी जाँच करता हूँ, दोनों ने नया मान लौटाया: 32000, इसलिए मुझे लगता है कि परिवर्तन पहले ही हो चुका है।

मैंने my.cnf फ़ाइल का मान भी बदल दिया है, इस तरह से ओपन-फाइल-लिमिट को 24000 पर सेट किया है:

open-files-limit    = 24000

अब अजीब हिस्सा आता है, जब मैं mysql सेवा को पुनरारंभ करता हूं और ओपन_फाइल्स_लिमिट चर की जांच करता हूं, तो यह वापस आ जाता है कि यह अभी भी 1024 पर सेट है, इसलिए मुझे वही समस्याएं आ रही हैं जो पहले (जाहिर है), मैंने खुली-फाइलों-सीमा का उपयोग करने की कोशिश की थी my.cnf कॉन्फ़िग फ़ाइल में open_files_limit के बजाय, एक ही परिणाम, लेकिन अगर मैं सेवा शुरू करने के लिए सेवा को ओवरराइड करता हूं और केवल mysqld (कोई अतिरिक्त पैरामीटर नहीं) का उपयोग करना शुरू करता हूं, तो सेवा शुरू होती है और जब मैं जांचता हूं कि पैरामीटर 32000 देता है ... मुझे नहीं पता कि यह उस मूल्य को कहां से ले रहा है, क्योंकि यह my.cnf पर सेट नहीं है और इसे कमांड लाइन के माध्यम से नहीं दिया जा रहा है, कम से कम, अपने लिए नहीं।

किसी भी विचार के बारे में कि यह बदलाव क्यों नहीं कर रहा है और इसे सामान्य तरीके से कैसे हल किया जाए (इसे सेवा के माध्यम से लॉन्च किया जाए ...)?

जवाबों:


9

मुझे अंत में समस्या मिली, ऐसा लगता है कि upstart /etc/security/limits.conf पर परिभाषित मापदंडों का उपयोग नहीं करता है, इसलिए जब मैं सर्विस कमांड के माध्यम से mysql लॉन्च करता हूं (और इसलिए, upstart के तहत), तो यह उन परिभाषित सीमाओं और उपयोगों से अधिक है। डिफ़ॉल्ट 1024।

समाधान mysql.conf फ़ाइल को संशोधित करने के लिए है जो अपस्टार्ट सेवा को परिभाषित करता है, यह /etc/init/mysql.conf पर स्थित है और प्री-स्टार्ट ब्लॉक से पहले निम्न पंक्तियाँ जोड़ें:

# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
limit nproc 32000 32000

पहला मान सॉफ्ट लिमिट को परिभाषित करता है, दूसरा, हार्ड लिमिट, एक बार उन लाइनों को जोड़ने के बाद, सर्विस my.conf फाइल में परिभाषित वैल्यूज को लागू करने की उम्मीद के अनुसार काम करती है।

यह सीमा प्रत्येक अपस्टार्ट सेवा के लिए लागू होनी चाहिए जिसे यह / etc / init में परिभाषित किया गया है, इसलिए यदि किसी सेवा को खुली फ़ाइलों की सीमा के साथ समान समस्या है, तो यह समाधान भी काम करना चाहिए।


1
वहाँ अच्छा काम!
pkhamre 10

इसने चाल
चली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.