কেন সীমাবদ্ধতাগুলি আপডেট করার পরে 1024 ফাইলের সীমা পুনরায় রিপোর্ট করে?


9

আমি আমার redis.log ফাইলের শীর্ষে এই ত্রুটিটি দেখছি:

বর্তমান সর্বাধিক উন্মুক্ত ফাইলগুলি 1024 low

আমি চিঠির এই পদক্ষেপগুলি অনুসরণ করেছি (এবং রিবুট করা):

তদুপরি, আমি দৌড়ানোর সময় এটি দেখতে পাই ulimit:

ubuntu@ip-XX-XXX-XXX-XXX:~$ ulimit -n
65535

এই ত্রুটিটি কি বিশিষ্ট? যদি তা না হয় তবে আমার আর কোন পদক্ষেপগুলি সম্পাদন করা দরকার? আমি উবুন্টু এলটিএস 14.04.1 (আবার, গাছের ডগা) উপর 2.8.13 (গাছের ডগা) আবার চালাচ্ছি।

এখানে ব্যবহারকারী তথ্য:

ubuntu@ip-XX-XXX-XXX-XXX:~$ ps aux | grep redis
root      1027  0.0  0.0  66328  2112 ?        Ss   20:30   0:00 sudo -u ubuntu /usr/local/bin/redis-server /etc/redis/redis.conf
ubuntu    1107 19.2 48.8 7629152 7531552 ?     Sl   20:30   2:21 /usr/local/bin/redis-server *:6379               

সার্ভারটি তাই উবুন্টু হিসাবে চলছে।

মন্তব্য ছাড়া আমার সীমাবদ্ধতা ফাইলটি এখানে:

ubuntu@ip-XX-XXX-XXX-XXX:~$ cat /etc/security/limits.conf | sed '/^#/d;/^$/d'
ubuntu soft nofile 65535
ubuntu hard nofile 65535
root soft nofile 65535
root hard nofile 65535

এবং এখানে sysctl fs.file-max এর আউটপুট দেওয়া হচ্ছে:

ubuntu@ip-XX-XXX-XXX-XXX:~$ sysctl -a| grep fs.file-max
sysctl: permission denied on key 'fs.protected_hardlinks'
sysctl: permission denied on key 'fs.protected_symlinks'
fs.file-max = 1528687
sysctl: permission denied on key 'kernel.cad_pid'
sysctl: permission denied on key 'kernel.usermodehelper.bset'
sysctl: permission denied on key 'kernel.usermodehelper.inheritable'
sysctl: permission denied on key 'net.ipv4.tcp_fastopen_key'

সুডো হিসাবে

ubuntu@ip-10-102-154-226:~$ sudo sysctl -a| grep fs.file-max
fs.file-max = 1528687

এছাড়াও, আমি redis.log ফাইলের শীর্ষে এই ত্রুটিটি দেখছি, এটি সম্পর্কিত কিনা তা নিশ্চিত নয়। এটি বোঝা যায় যে উবুন্টু ব্যবহারকারীর সর্বাধিক উন্মুক্ত ফাইল পরিবর্তন করার অনুমতি নেই, তবে আমি যে উচ্চ উম্মিতকে সেট করার চেষ্টা করেছি তার দরকার নেই:

[1050] 23 Aug 21:00:43.572 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[1050] 23 Aug 21:00:43.572 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.

উত্তর:


4

/etc/pam.d/ডিরেক্টরিতে আপনার ফাইলগুলি সম্পাদনা করা উচিত ।

আপনার দৌড়ানোর সময় sudo -u ubuntu /usr/local/bin/redis-server, আপনার নিম্নলিখিত লাইনটি যুক্ত করা উচিত /etc/pam.d/sudoবা /etc/pam.d/common-session-noninteractiveক্ষেত্রে /etc/pam.d/sudoএটির অন্তর্ভুক্ত রয়েছে:

session required pam_limits.so

এটি ভিতরে সরবরাহ করা কনফিগারেশন সেট করতে সহায়তা করবে /etc/security/limits.conf


ঐটা এটা ছিল! অনেক ধন্যবাদ. উবুন্টু 2012.04 এলটিএস থেকে উবুন্টু 2014.04 এলটিএসে পরিবর্তনের মতো শোনাচ্ছে।
এসিলিভার

খুশি যে আপনাকে সাহায্য করেছে। আসলে আমার xubuntu 14.04 /etc/pam.d/sudo এর ভিতরে এই লাইনটি নেই line এই মুহুর্তে 12.04 চেক করা যায় না।
নাভর

ডেবিয়ানে সিস্টেমেড ব্যবহার করার সময়, সার্ভারফল্ট
প্রশ্ন /

3

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

সে ক্ষেত্রে সমাধানটি এখানে পাওয়া গেল । এর সংক্ষিপ্তটি হ'ল, আপনাকে সুপারভাইজারের স্টার্টআপ কমান্ডের অংশ হিসাবে ulimit -n এর মাধ্যমে সীমাটি নির্ধারণ করতে হবে।

উদাহরণ:

[program:redis-a]
command=bash -c "ulimit -n 32768; exec /usr/local/bin/redis-server /etc/redis/a.conf"

1

পাশাপাশি ওপেন ফাইলের সীমা বাড়ানো। আপনার redis.conf- এ আপনার সর্বোচ্চ পরিমাণ বাড়ানো দরকার। এটি ডিফল্ট হিসাবে মাত্র 10000।

# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
maxclients 1024000

0

অনুরূপ সমস্যাযুক্ত অন্যান্য উবুন্টু ব্যবহারকারীদের জন্য নোট:

আপনি যদি বুট থেকে রেডিস শুরু করেন, আপস্টার্টের মাধ্যমে f.ex, আপনি এই সীমাটি "সীমা" স্তরের সাথে সেট করতে পারেন।

নফিলের জন্য:

limit nofile 4096 4096

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.