4096 এর আগে উন্মুক্ত ফাইলের সীমা বাড়ানো যায় না (উবুন্টু)


34

আমি উবুন্টু 17.04 এ আছি। উন্মুক্ত ফাইল সীমা বাড়ানোর চেষ্টা করা হচ্ছে এবং অনলাইনে আমি যে নির্দেশাবলীর সন্ধান পেয়েছি তার কোনওটিই কাজ করছে না। আমি 4096 পর্যন্ত যেতে পারি, তবে এর আগে যেতে পারি না।

$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096

ওই কাজগুলো. এটি করে না:

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

এটি শক্ত সীমাবদ্ধতার কারণে বলে মনে হচ্ছে:

$ ulimit -Hn
4096

আমি এই লাইনগুলি /etc/security/limits.conf এ যুক্ত করার চেষ্টা করেছি:

*                hard    nofile          65535
*                soft    nofile          65535
root             soft    nofile          65535
root             hard    nofile          65535

এই লাইনটি /etc/pam.d/common-session এবং /etc/pam.d/common-session-noninteractive- এ যুক্ত করেছে

session required pam_limits.so

যেহেতু, আমি আমার কম্পিউটারটি রিবুট করেছি। সীমাবদ্ধতাগুলি পরিবর্তনগুলি কোনও কিছুর উপর প্রভাব ফেলবে বলে মনে হয় না। শক্ত সীমাটি এখনও 4096 এ আটকে আছে, আমাকে আরও উচ্চতর হতে বাধা দেয়। আমি কীভাবে আমার উন্মুক্ত ফাইলের সীমা বাড়াব?


এখানে কিছু অতিরিক্ত কনফিগার তথ্য রয়েছে:

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

উত্তর:


56

ঠিক আছে, আমি অবশেষে এটি বুঝতে পেরেছি। আমি /etc/security/limits.conf এ সীমাবদ্ধ করেছিলাম তা প্রয়োগ করা হচ্ছে তবে গ্রাফিকাল লগইনে সেগুলি প্রয়োগ করা হয়নি। এটি টার্মিনাল উইন্ডো থেকে এটি যাচাই করা যেতে পারে:

$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535

আরও গবেষণা আমাকে এই বাগ রিপোর্টে নিয়ে গেছে , যা আমাকে সঠিক দিকে নির্দেশ করেছে। লগইন শেল দ্বারা ব্যবহৃত সীমাটি সংশোধন করতে, আমাদের নীচের লাইনটি /etc/systemd/user.conf এ যুক্ত করতে হবে:

DefaultLimitNOFILE=65535

এই পরিবর্তনটি কাজ করে, তবে কেবল নরম সীমাটিকে প্রভাবিত করে। (আমাদের এখনও 4096 এর একটি হার্ড সীমাতে আবদ্ধ করা।

আমি /etc/pam.d এ পরিবর্তনগুলি প্রয়োজনীয় ছিল না। অন্তত উবুন্টুতে, এটি ইতিমধ্যে কাজ করছে। এছাড়াও, সীমাবদ্ধতাগুলির জন্য rootএবং সেটিংগুলিতে পরিবর্তন করার প্রয়োজন ছিল না *mkasbergকমপক্ষে আমার ব্যবহারের ক্ষেত্রে সীমা পরিবর্তন করা যথেষ্ট ছিল।


সংক্ষেপে

আপনি দেখানো সীমাটি বাড়াতে চাইলে ulimit -nআপনার উচিত:

  • নিম্নলিখিত রেখার সাথে /etc/systemd/user.conf এবং /etc/systemd/system.conf সংশোধন করুন (এটি গ্রাফিকাল লগইনের যত্ন নেয়):

    DefaultLimitNOFILE=65535
    
  • নিম্নলিখিত রেখাগুলি দিয়ে /etc/security/limits.conf সংশোধন করুন (এটি নন-জিইউআই লগইনকে বিবেচনা করে):

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনার কম্পিউটারটিকে পুনরায় বুট করুন।


2
DefaultLimitNOFILE=65535কৌতুকটি করেছে কিন্তু কেন /etc/security/limits.conf কাজ করে না?
সুচিত্রাফ মনিকাকে

6
জিইউআই লগইন সিস্টেমেড ব্যবহার করে, যা স্পষ্টতই এর নিজস্ব কনফিগারেশন ( /etc/systemd/system.conf) যা টার্মিনাল সেশনগুলির জন্য সাধারণ কনফিগারেশন ( /etc/security/limits.conf) থেকে পৃথক। কেন এটি এভাবে বাস্তবায়িত করা হয়েছে তা জানতে সিস্টেমড সম্পর্কে আমি যথেষ্ট পরিমাণে জানি না।
এমকাসবার্গ

1
@Suvitruf কারণ এটি একটি উপেক্ষা এর systemd হল সিস্টেম। আমি একটি উত্তর পোস্ট করছি।
২৩7777

1
কেবল উল্লেখ করতে চাই যে rootব্যবহারকারীর সীমাবদ্ধতা *বা গোষ্ঠী নির্দিষ্টকারী দ্বারা নির্দিষ্ট করা যায় না। rootআক্ষরিক স্পষ্টভাবে নির্দিষ্ট করা আবশ্যক।
পেট্রা জাভেরিক

2
এটি আমার জন্য পুনরায় বুট করার পরে কাজ করে ।
শিহে ঝাং

14

/etc/security/limits.confফাইলটিতে কোনও পরিবর্তন করার দরকার নেই , আপনি যদি সিস্টেমড ব্যবহার করে থাকেন তবে তা উপেক্ষা করা হবে।

( নেটওয়ার্কে অন্য প্রশ্নের একটি পরিবর্তিত উত্তর পুনরুত্পাদন করছে ...)

যারা ডিফল্ট /etc/systemd/system.confএবং /etc/systemd/user/confফাইলগুলি সম্পাদনা করতে পছন্দ করেন না তাদের বিকল্প :

  1. /etc/systemd/system.conf.d/limits.confএই বিষয়বস্তু সহ একটি নতুন ফাইল তৈরি করুন :

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. systemctl daemon-reexecরুট হিসাবে চালান

  3. লগআউট এবং আবার লগইন

  4. সঙ্গে আপনার নতুন সীমা পরীক্ষা করুন ulimit -n

বিশদ জন্য systemd-system.confম্যানপেজ দেখুন।


আমার উবুন্টু 18.10 সিস্টেমে প্রশ্নযুক্ত ফাইলটি রয়েছে /etc/systemd/system.conf। পরিবর্তনটি সেখানে উপস্থিত করা কৌশলটি মনে হয়েছে, ধন্যবাদ you
স্টিফেন কেনেডি

1
আমার জন্য কেবল লগ আউট করা কাজ করেনি (উবুন্টু 18.04) তবে কাজটি পুনরায় চালু করে। খুব মার্জিত সমাধান, ধন্যবাদ।
stann1

0

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

user@paresh.com:~$ ulimit -Hn
4096

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

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

সুতরাং আমি এর /etc/security/limits.confমতো উচ্চতর সীমা নির্ধারণ করার চেষ্টা করেছি :

user hard nofile 9999

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

user@paresh.com:~$ ulimit -Hn
9999

আমি আশা করি এটি আপনার পক্ষেও কাজ করে।


0
  1. সম্পাদনা /etc/systemd/system/sonar.service

  2. পরিষেবা অধীনে এই দুটি লাইন যোগ করুন

[পরিষেবা]

LimitMEMLOCK = অনন্ত

LimitNOFILE = 65535

  1. systemctl ডেমন-পুনরায় লোড করুন
  2. systemctl পুনরায় আরম্ভ করুন সোনার

এটা আমার জন্য কাজ করে।


0

টিএল; ডিআর আমি উত্তরগুলি কেন্দ্রীভূত করার প্রয়োজনীয়তা অনুভব করেছি, সুতরাং সেগুলি খুঁজে পাওয়া সহজ। এটিকে সঠিকভাবে কাজ করার জন্য সমস্ত টুকরোগুলি একত্রিত করার জন্য আমাকে যুগ যুগ ধরে নিয়ে গিয়েছিল ...

2 টি স্থান বিবেচনা করা আছে।

  1. জিইউআই অধিবেশন

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    বা আরও ভাল এখানে:

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. শেল পরিবেশ

    $ grep nofile /etc/security/limits.conf
    user soft nofile 65535
    user hard nofile 65535`
    

    বা আরও ভাল এখানে:

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. উপরের ফাইলগুলিতে সেটিংস পরিবর্তন করার পরে, পুনরায় বুট করুন এবং তারপরে সীমাটি পরীক্ষা করুন: ulimit -n -Hn -Sn

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