প্রশ্ন এটি অ-রুট ব্যবহারকারীর জন্য 4096 সর্বাধিক খোলা ফাইলগুলি কেন পেতে পারে না?


আমি বৃদ্ধি করতে বলে মনে হচ্ছে না nofile এই সমস্যার সাথে সম্পর্কিত প্রতিটি স্ট্যাক এক্সচেঞ্জ উত্তর অনুসরণ করার পরেও উবুন্টু 14.04 এ অ-রুট ব্যবহারকারীদের জন্য সীমাবদ্ধ। এ পর্যন্ত আমার আছে:

$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000

$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required        pam_limits.so
/etc/pam.d/common-session-noninteractive:session required        pam_limits.so

$ cat /proc/sys/fs/file-max
101232

রিবুট, লগ ইন, এবং:

$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted

সেখানে এখনো কোনওভাবে অ-রুট ব্যবহারকারীদের জন্য 4096 সর্বোচ্চ সীমা বলে মনে হয়।


12
2018-03-09 19:30


উত্স


আমি করছি সঠিক একই সমস্যা উবুন্টু 16.10 ডেস্কটপে যাই হোক না কেন আমি চেষ্টা করি, সীমা হয় 1024 বা 4096 হয়। - NathanAldenSr


উত্তর:


উবুন্টু 14.04 ব্যবহার করে আমি বর্ণিত হার্ড সীমাটি পেয়েছি:

user@notebook:~$ ulimit -Hn 4096  

আমি ulimit ব্যবহার করে এটি কমিয়ে দিতে পারে, কিন্তু প্রশ্ন হিসাবে এটি বৃদ্ধি না, এটা বৃদ্ধি। উলিমিতের ম্যানুয়াল বর্ণনা করে:

শুধুমাত্র রুট হার্ড সীমা বৃদ্ধি করতে পারেন

তাই আমি একটি উচ্চ সীমা সেট করার চেষ্টা /etc/security/limits.conf এটার মত:

user hard nofile 9999 

এবং একটি নতুন লগইন মত ssh localhost -l user আমাকে নতুন সীমা দিয়েছে:

user@notebook:~$ ulimit -Hn 9999

এই আপনার জন্য কাজ করে আশা করি।


12
2018-03-10 23:43



ধন্যবাদ TomTomTom। আমি ইতিমধ্যে /etc/security/limits.d/custom.conf এ এই ধরনের পরিবর্তন করেছি। আমি প্রস্তাবিত হিসাবে এটি সরাসরি /etc/security/limits.conf তে রেখে দেওয়ার চেষ্টা করেছি, এবং আমি এখনও "bash: ulimit: খোলা ফাইলগুলি: সীমা সংশোধন করতে পারছি না: অপারেশন অনুমোদিত নয়"। - Caffeine Coma
আমি - অনুমান করছি - দুটি কারণের মধ্যে এটি কেন আপনার জন্য কাজ করে না: - TomTomTom
অসম্পূর্ণ মন্তব্য সম্পাদনা করতে আমাকে অনেক সময় লাগলো। এখানে আমরা যাই: আমি - অনুমান করছি - দুটি কারণের মধ্যে একটি, কেন এটি আপনার জন্য কাজ করে না: 1। /etc/security/limits* আপনার লগইন প্রক্রিয়া দ্বারা পড়তে না - এখনো অজানা কারণে। 2. আপনার হার্ড সীমা 4096 অন্য কোথাও সেট হয়, এবং "শুধুমাত্র রুট বাড়তে পারে ..."। আপনি আপনার প্রোফাইল চেক করতে পারে .bashrc(আপনার শেলের উপর নির্ভর করে), অথবা আপনি চেক করতে পারেন /etc অন্যান্য জায়গায়, যেখানে সীমা সেট করা যেতে পারে, মত find /etc | grep -e ulimit -e 4096 -e nofile। বিটিডব্লিউঃ আপনি কি এসএসএস চেষ্টা করেছেন? এবং: আপনি পরিবর্তন করেছেন /etc/ssh/sshd.conf কিছু কারণে PAM এড়ানোর জন্য? - TomTomTom
হ্যাঁ- সব লগইন ssh মাধ্যমে হয়। আমি UsePAM নিষ্ক্রিয় করেছি- কয়েকটি নির্দেশিকা এটি শুধুমাত্র ssh-key ভিত্তিক লগইনগুলি মঞ্জুর করার অংশ হিসাবে সুপারিশ করে। আমি অস্থায়ীভাবে এটি চালু করার চেষ্টা করব, শুধু এটি দেখতে সমস্যা কিনা। ধন্যবাদ! - Caffeine Coma
আফিক, পাম কি পড়া উচিত /etc/security/limits* - আপনি এই জন্য চেক করতে PAM সক্রিয় করার চেষ্টা করতে পারেন। আমি PAM অক্ষম করার চেষ্টা করব, এটি কোন পার্থক্য তৈরি করে এবং ফলাফলগুলি প্রতিবেদন করবে। --- হ্যাঁ! এটাই! PAM নিষ্ক্রিয় করে আমার সীমা 4096, অত্যধিক, 99 99 তে সেট করা হয়েছে /etc/security/limits.conf। - TomTomTom


এই প্রবন্ধ, আমি আপনার সমস্যা ঠিকানা মনে করি।

মূলত আপনি উপলব্ধ সম্পদ বৃদ্ধি করতে ulimit কমান্ড ব্যবহার করা উচিত।

উদাহরণ স্বরূপ:

সর্বাধিক সংখ্যক খোলা ফাইল বর্ণনাকারী প্রদর্শন করতে নিম্নলিখিত কমান্ড কমান্ডটি ব্যবহার করুন:

cat /proc/sys/fs/file-max

হার্ড এবং নরম মানগুলি দেখতে, নিম্নরূপ কমান্ডটি ইস্যু করুন:

# ulimit -Hn
# ulimit -Sn

Httpd বা oracle ব্যবহারকারীর হার্ড এবং নরম মানগুলি দেখতে, নিম্নরূপ কমান্ডটি ইস্যু করুন:

# su - username

সর্বাধিক ফাইল সংখ্যার সংশোধন করার জন্য, আপনি কার্নেল পরিবর্তনশীল / proc / sys / fs / file-max এ রুট হিসাবে লগইন করার জন্য সর্বাধিক সংখ্যক খোলা ফাইলগুলি বৃদ্ধি করতে পারেন (root হিসাবে লগইন করুন):

# sysctl -w fs.file-max=100000

উপরোক্ত কমান্ড সীমা 100,000 ফাইল সীমাবদ্ধ। আপনি সম্পাদনা করতে হবে /etc/sysctl.conf ফাইলটি এবং নিম্নোক্ত লাইনটি রাখুন যাতে রিবুট করার পরে সেটিংটি ঠিক থাকবে। এটি করার জন্য, নিম্নরূপ একটি কনফিগারেশন নির্দেশিকা যোগ করুন:

fs.file-max = 100000

সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন। পরিবর্তনগুলি কার্যকর হওয়ার জন্য ব্যবহারকারীদের লগ আউট করতে এবং আবার লগ ইন করতে হবে অথবা কেবল নিম্নলিখিত কমান্ডটি টাইপ করুন:

# sysctl -p

কমান্ড দিয়ে আপনার সেটিংস যাচাই করুন:

# cat /proc/sys/fs/file-max

বা:

# sysctl fs.file-max

উপরের পদ্ধতিটি সিস্টেম-ওয়াইড ফাইল ডিস্ক্রিপ্টরস (FD) সীমা সেট করে তবে আপনি সীমাবদ্ধ করতে পারেন httpd (বা অন্য কোন ব্যবহারকারী) সম্পাদনা দ্বারা নির্দিষ্ট সীমা ব্যবহারকারী /etc/security/limits.conf সম্পাদনা দ্বারা ফাইল /etc/security/limits.conf এবং নিম্নরূপ সীমা সেট করুন:

httpd soft nofile 4096
httpd hard nofile 10240

তারপর তাদের দ্বারা চেক করুন:

# su - httpd
$ ulimit -Hn
$ ulimit -Sn

যদি আপনি অন্য লিনাক্স বিতরণগুলিতে সমস্যাটি পান তবে চেক করুন /etc/pam.d/login এবং নিশ্চিত করুন যে আপনি পেয়েছেন pam_limits.so সক্রিয়, যেমন

session required pam_limits.so

4
2018-03-09 19:37



হাই ব্রুক। দুর্ভাগ্যবশত, আমি ইতিমধ্যে যে নিবন্ধ থেকে পরামর্শ চেষ্টা করেছি। যদিও 'উলিমিট-এইচএন' আমার কাছে নতুন ছিল; এটা 4096 প্রিন্ট, আমি সীমাবদ্ধ রাখা সীমা। - Caffeine Coma


যদি এটি একটি পরিষেবা হয়, তবে আপনি সীমা সেট করার চেষ্টা করতে পারেন /etc/systemd/system/{ServiceName}.service যোগ LimitNOFILE=65536


0
2017-07-07 15:12



Ubuntu 14.04 ডিফল্টরূপে systemd ব্যবহার করে না। - number5
উবুন্টু 16.04, টমেট 8 আমার জন্য কাজ করেছে - Arjang