আমার অ্যাপ্লিকেশন চালানোর সময় আমি মাঝে মাঝে ত্রুটি পাই too many files open।
চলমান ulimit -aপ্রতিবেদন করে যে সীমা 1024। আমি কীভাবে 1024 এর উপরে সীমা বাড়িয়ে দেব?
ulimit -n 2048অনুমতি ত্রুটিতে ফলাফল সম্পাদনা করুন ।
আমার অ্যাপ্লিকেশন চালানোর সময় আমি মাঝে মাঝে ত্রুটি পাই too many files open।
চলমান ulimit -aপ্রতিবেদন করে যে সীমা 1024। আমি কীভাবে 1024 এর উপরে সীমা বাড়িয়ে দেব?
ulimit -n 2048অনুমতি ত্রুটিতে ফলাফল সম্পাদনা করুন ।
উত্তর:
আপনি সর্বদা একটি চেষ্টা করতে পারেন ulimit -n 2048। এটি কেবলমাত্র আপনার বর্তমান শেলের সীমাটি পুনরায় সেট করবে এবং আপনি যে নম্বর নির্দিষ্ট করেছেন তা অবশ্যই হার্ড সীমা ছাড়িয়ে যাবে না
প্রতিটি অপারেটিং সিস্টেমের একটি কনফিগারেশন ফাইলে আলাদা হার্ড সীমা সেটআপ থাকে। উদাহরণস্বরূপ, সোলারিসে হার্ড ওপেন ফাইলের সীমাটি / etc / সিস্টেম থেকে বুটে সেট করা যেতে পারে।
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
ওএস এক্স-তে, এই একই ডেটাটি /etc/sysctl.conf এ সেট করতে হবে।
kern.maxfilesperproc=166384
kern.maxfiles=8192
লিনাক্সের অধীনে, এই সেটিংসটি প্রায়শই /etc/security/limits.conf এ থাকে।
সীমা দুই ধরণের আছে:
নরম সীমাগুলি যে কোনও ব্যবহারকারীর দ্বারা সেট করা যেতে পারে যখন হার্ড সীমাগুলি কেবল রুট দ্বারা পরিবর্তনযোগ্য। সীমাবদ্ধতা একটি প্রক্রিয়া সম্পত্তি। যখন একটি শিশু প্রক্রিয়া তৈরি করা হয় তখন এগুলি উত্তরাধিকার সূত্রে প্রাপ্ত হয় সুতরাং থ্রি স্ক্রিপ্টগুলিতে সিস্টেম শুরু করার সময় সিস্টেম-প্রশস্ত সীমা নির্ধারণ করা উচিত এবং ব্যবহারকারী লগইন করার সময় ব্যবহারকারীর সীমা সেট করা উচিত উদাহরণস্বরূপ pam_limits ব্যবহার করে।
মেশিন বুট করার সময় প্রায়শই ডিফল্ট সেট থাকে। সুতরাং, যদিও আপনি নিজের উলিমিটটি পৃথক শেলের মধ্যে পুনরায় সেট করতে পারেন তবে আপনি দেখতে পাবেন এটি পুনরায় বুট করার আগের মানটিতে পুনরায় সেট করে। আপনি যদি ডিফল্টটি পরিবর্তন করতে চান তবে অস্তিত্বের উলামিট কমান্ডগুলির জন্য আপনি আপনার বুট স্ক্রিপ্টগুলি গ্রেপ করতে চাইতে পারেন।
ulimit। আপনি যা ব্যবহার করছেন তা অবশ্যই নির্দিষ্ট করতে হবে (যেমন ডাব্লুএসএল, সাইগউইন)।
আপনি যদি লিনাক্স ব্যবহার করে থাকেন এবং অনুমতি ত্রুটিটি পেয়ে থাকেন তবে আপনাকে /etc/limits.confবা /etc/security/limits.confফাইলটিতে অনুমোদিত সীমাটি বাড়াতে হবে (যেখানে ফাইলটি আপনার নির্দিষ্ট লিনাক্স বিতরণের উপর নির্ভর করে)।
উদাহরণস্বরূপ, মেশিনে থাকা যে কোনও ব্যক্তিকে তাদের খোলা ফাইলগুলির সংখ্যা 10000 পর্যন্ত বাড়িয়ে দেওয়ার জন্য limits.confফাইলটিতে লাইন যুক্ত করুন।
* hard nofile 10000
তারপরে লগআউট এবং আপনার সিস্টেমে পুনরায় প্রবেশ করুন এবং আপনার এটি করতে সক্ষম হওয়া উচিত:
ulimit -n 10000
অনুমতি ত্রুটি ছাড়া।
root । আপনি সীমাটি root hard nofile 10000সামঞ্জস্য করতে চান কিনা আপনাকে নির্দিষ্ট করতে হবে root।
ulimitএবং প্রতিটি কীভাবে টিউটোরিয়ালটি পেরেছি এবং শেষ পর্যন্ত আমি মূল হিসাবে লগইন করেছি তা সম্পর্কে প্রতিটি টিউটোরিয়াল দিয়ে গত the ঘন্টা বা তার পরে ব্যয় করেছি। এজন্য আমি 1024 টি দেখতে পেয়েছি ulimit -a। আমি ওয়াইল্ড কেয়ার পরিবর্তন করেছি এবং একটি *অভ্যন্তর যুক্ত করেছি limits.conf। এখনই সব ঠিক আছে, (এসএমএস কী ব্যবহার করে চিন্তা করবেন না: পি) - আপনাকে ধন্যবাদ !!!
/etc/security/limits.d/।
1) নিম্নলিখিত লাইন যোগ করুন /etc/security/limits.conf
webuser hard nofile 64000
তারপরে ওয়েব ব্যবহারকারী হিসাবে লগইন করুন
su - webuser
2) ওয়েব ব্যবহারকারীর জন্য নিম্নলিখিত দুটি ফাইল সম্পাদনা করুন
পরিশেষে যোগ .bashrc এবং .bash_profile চালিয়ে ফাইল
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3) লগ আউট করুন, তারপরে আবার লগ ইন করুন এবং পরিবর্তনগুলি সঠিকভাবে করা হয়েছে তা যাচাই করুন:
$ ulimit -a | grep open
open files (-n) 64000
এটি এবং তাদের গর্জন, গর্জন গম্ভীর।
যদি আপনার কিছু পরিষেবা উলিমিটগুলিতে ঝাঁকিয়ে পড়ে থাকে তবে কখনও কখনও পরিষেবার আদেশ-স্ক্রিপ্টে উপযুক্ত কমান্ডগুলি দেওয়া আরও সহজ। উদাহরণস্বরূপ, যখন অ্যাপাচি রিপোর্ট করছে
[সতর্কতা] (১১) রিসোর্স অস্থায়ীভাবে অনুপলব্ধ: apr_thread_create: কর্মী থ্রেড তৈরি করতে অক্ষম
করা চেষ্টাসব ulimit -s unlimitedমধ্যে /etc/init.d/httpd। এটির জন্য সার্ভার পুনরায় বুট করার দরকার নেই।