ওপেন ফাইলের সীমা ওএসএক্স ইয়োসেমাইটে আগের মতো কাজ করে না [নকল]


22

আমি ম্যাক ওএস এক্সকে ইয়োসেমাইটে সবেমাত্র আপডেট করেছি এবং এখন কিছু অ্যাপ্লিকেশন কাজ করে না (আইবিএম ডিবি 2)। আমি জানি যে আমাকে ওপেন ফাইলগুলি 65000 এ সেট করা দরকার, তবে কমান্ডটি কাজ করে না।

Andress-MBP:~ root# ulimit -n 12288
Andress-MBP:~ root# ulimit -n 12289
-sh: ulimit: open files: cannot modify limit: Invalid argument

কেন এটি হচ্ছে এবং আমি কীভাবে সমস্যাটি সংশোধন করতে পারি?

উত্তর:


25

দেখে মনে হচ্ছে ওএস এক্স এর প্রতিটি সংস্করণের জন্য ওপেন ফাইলের সীমা পরিবর্তন করার জন্য সম্পূর্ণ আলাদা পদ্ধতি আছে!

ওএস এক্স সিয়েরার জন্য (10.12.X) আপনার প্রয়োজন:

  1. ইন /Library/LaunchDaemonsনামে একটি ফাইল তৈরি limit.maxfiles.plistকরুন এবং নিম্নলিখিত (দুটি সংখ্যার, যা নরম ও কঠোর সীমা আছে নির্দ্ধিধায় বদলান যথাক্রমে) আটকান:

    <?xml version="1.0" encoding="UTF-8"?>  
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  
              "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">  
        <dict>
          <key>Label</key>
          <string>limit.maxfiles</string>
          <key>ProgramArguments</key>
          <array>
            <string>launchctl</string>
            <string>limit</string>
            <string>maxfiles</string>
            <string>64000</string>
            <string>524288</string>
          </array>
          <key>RunAtLoad</key>
          <true/>
          <key>ServiceIPC</key>
          <false/>
        </dict>
      </plist> 
    
  2. আপনার নতুন ফাইলের মালিক পরিবর্তন করুন:

    sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
    
  3. এই নতুন সেটিংস লোড করুন:

    sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
    
  4. পরিশেষে, সীমাটি সঠিক কিনা তা পরীক্ষা করুন:

    launchctl limit maxfiles
    

7
ম্যাকোস 10.13 এর জন্য একটি নতুন উত্তরের প্রত্যাশায়! :)
এনএসটিজে

1
আমি পুনরায় আরম্ভ না করা পর্যন্ত প্রক্রিয়াটি আমার পক্ষে কার্যকর হয়নি। ধন্যবাদ! এটি সত্যিই অনেক সাহায্য করেছে
ইউজার 2773086

এই লেখকটি আরও বলেছে যে এই ফাইলগুলি সংশোধন করা সিয়েরার
ডিভিন জি রোড

1
সীমা কাজ করার জন্য পুনরায় চালু করা প্রয়োজন (ধাপ # 4 আপডেট হওয়া মানগুলি
দেখায়ও

21

আমি আপনাকে এই প্রশ্নটি জিজ্ঞাসা করেছি।

আপনার সাথে কার্নেল সীমাবদ্ধতা রয়েছে, কার্ন.ম্যাক্সফায়ালগুলি কার্নেলের সীমা এবং উলিমিট সেট করার সময় অতিক্রম করা যাবে না।

সিসেক্টল ব্যবহার করে কীর্নেম্যাক্সিমাইফিলগুলি কীভাবে পরিচালনা করতে হবে তার বিবরণের জন্য ম্যাক ওএস এক্সের ক্রিপটেড ব্লগ পৃষ্ঠাটি সর্বাধিক ফাইলগুলি দেখুন ।

আমি এখনও আমার ম্যাকটিতে ইয়োসেমাইট লোড করি নি। sysctl -w kern.maxfiles=65000মাভারিক্স, যা একই kern.maxfiles = ডিফল্টরূপে 12288 সীমা আছে কাজ করে।

আমি আমার ভিএম ওএস এক্স 10.6.8 এ যাচাই করেছি এবং এটির একই সীমা ছিল যা এটি আপনার ওএস এক্স সংস্করণে আগে কীভাবে কাজ করছিল তা নিয়ে প্রশ্ন রয়েছে।

একটি স্লাইড শেয়ার রয়েছে ( ম্যাক ওএস এক্সের জন্য ম্যাক ওএস এক্সের জন্য ডিবি 2 ইনস্টল করা এবং ম্যাক ওএস এক্সের জন্য ডিবি 2 স্থাপন করা ) ডিবি 2 ব্যবহারের জন্য প্রস্তাবিত সীমাটি দেখায়, সিস্টেমের পরামিতিগুলি বৃদ্ধি করুন পৃষ্ঠা 7 দেখুন।

সিস্টেমের পরামিতিগুলি বাড়ান

/Etc/sysctl.conf খুলুন (বা এটি ইতিমধ্যে বিদ্যমান না থাকলে এটি তৈরি করুন) এবং নীচের সেটিংসটি sertোকান। এই সেটিংগুলি ভাগ করা মেমরির এবং ব্যবহারকারী সীমাবদ্ধতার জন্য কিছু সেটিংস বাড়িয়ে তোলে যা ম্যাকে কাজ করার জন্য ডিবি 2 প্রয়োজন।

নিম্নলিখিতটি /etc/sysctl.conf
kern.sysv.shmmax = 1073741824
kern.sysv.shmmin = 1
kern.sysv.shmmni = 4096
kern.sysv.shmseg = 32
kern.sysv.shmall = 1179648
kern.maxfilesperprocrprocprp এ যোগ করুন
kern.maxfiles = 65536

দেখে মনে হচ্ছে /etc/sysctl.confআপনি আপগ্রেড করার সময় আপনি নিজের ফাইলটি হারিয়েছেন ।


প্রকৃতপক্ষে, আমি DB2 ইনস্টল করেছি অনেক আগে ago তারপরে আমি কোনও সমস্যা ছাড়াই গত বছর ম্যাভারিকের কাছে আপডেট করেছি। এবং আজ, আমি ইয়োসেমাইটে আপডেট করেছি এবং এই সমস্যাটি উপস্থিত হবে। আমি আমার ইতোমধ্যে ইনস্টল করা ডিবি 2 শুরু করতে পারি না।
অ্যাঙ্গোকা

আরেকটি বিষয় হ'ল আমার সিস্টেমে c.cf ফাইলটি আপনার পোস্টে রাখা ফাইলের সাথে সাদৃশ্য। আমি প্রথমবারের মতো ডিবি 2 ইনস্টল করেছি (এক বছর আগে), কিন্তু স্থানান্তরের জন্য আমি এটি স্পর্শ করি নি।
অ্যাঙ্গোকা

সমস্যাটি সেই ফাইলে কিছু ফাঁকা জায়গা ছিল: আইবিএম
ডেভেলপ

1
ট্রেলিং স্পেসস, কে ভেবেছিল। অ্যাপলের কাছে বিশ্বের সেরা কিছু প্রোগ্রামার থাকার কথা।
ব্যবহারকারী 187561

@ ব্যবহারকারী 187561 sysctl(8)বিএসডি থেকে আসে।
ড্র স্টিফেনস

12

ম্যাক ওএস 10.10 এ দেখে মনে হচ্ছে যে উলিমিট সেটিংটি লঞ্চক্টল সীমা নির্ধারণের চেয়ে বেশি হতে পারে না।

সুতরাং আপনার বর্তমান সেটিংটি পেতে প্রথমে টার্মিনালে লঞ্চাক্টল সীমা ম্যাক্সফাইলগুলি চালানো উচিত :

launchctl limit maxfiles
maxfiles    256            unlimited 

সুতরাং আমার ক্ষেত্রে নরম সীমা 256, হার্ড সীমাটি সীমাহীন। এবং তারপরে যদি আমি নরম সীমাটি 512 তে সেট করতে চাই:

sudo launchctl limit maxfiles 512 unlimited

সীমাবদ্ধতা নির্ধারণের জন্য লঞ্চক্টেলের বিশদ ব্যবহার এখানে পাওয়া যাবে: https://developer.apple.com/library/mac/docamentation/Darwin/References/ManPages/man1/launchctl.1.html


2015-09-30 এ 'লঞ্চাক্টল সীমা ম্যাক্সফিলস 512 আনলিমিটেড' আমার (নরম, শক্ত) সীমাটি (512,10240) ইয়োসেমাইটে 10.10.5-এ সেট করেছে বলে মনে হচ্ছে
ডেভ এক্স

2
"লঞ্চক্টল সীমা ম্যাক্সফিলস আনলিমিটেড আনলিমিটেড; লঞ্চাক্টল সীমা ম্যাক্সফিলস" ইঙ্গিত দেয় যে 10240 সর্বাধিক সীমা প্রবেশ করা যেতে পারে। বৃহত্তর সংখ্যা ব্যবহার করা নিঃশব্দে ব্যর্থ হয় এবং সেটিংটি আগের মতোই ছেড়ে যায়।
ডেভ এক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.