OS X Yosemite - অনেকগুলি ফাইল খোলা আছে


18

আমি সম্প্রতি ম্যাভারিকস থেকে ইয়োসেমাইটে আপগ্রেড করেছি .... মাথা ব্যাথা শুরু হয়েছে

আমি নিশ্চিত যে আমার সমস্যাটি ডব্লু / আমি যে ফাইলগুলি খুলতে পারি তার মধ্যে রয়েছে - তবে আমি কীভাবে এটি সমাধান করব তা নিশ্চিত নই । আমি খুব নিশ্চিত যে আমি /etc/sysctl.confফাইল এবং /etc/launchd.confফাইল তৈরির বিষয়ে প্রতিটি নিবন্ধ / টিপ পড়েছি

স্পষ্টতার স্বার্থে এটি উভয়ই এখন এনবি-র মতো দেখায় (আমি নিশ্চিত নই যে এগুলিতে আর রাখার সঠিক আদেশ আছে কিনা - আমি সবকিছু এবং প্রতিটি সংমিশ্রণ সম্পর্কে চেষ্টা করেছি ie যেমন: উচ্চতর মান, নিম্ন মানের , আদেশগুলি সরিয়ে, কমান্ড যুক্ত করা)

/etc/launchd.conf

limit maxfiles 16384 32768
limit maxproc 1000 2000

/etc/sysctl.conf

# Turn up maxproc
kern.maxproc=2048
# Turn up the maxproc per user
kern.maxprocperuid=512

আমি আমার উলামিত মানগুলি বাড়ানোর চেষ্টা করেছি - বিশ্বব্যাপী এবং স্থানীয়ভাবে আমার বর্তমান সেশনের জন্য ... কোনও বুয়েনো নেই

ulimit -a

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       709
-n: file descriptors                4096

ঠিক আছে - এখান থেকেই আমার মাথাব্যথা শুরু হয়েছিল ... আমার ডিবি (হোমব্রিউয়ের মাধ্যমে ইনস্টল করা পারকোনা-সার্ভার 5.6.21-69.0) দম বন্ধ হয়ে মারা যেতে শুরু করেছে এবং মাইএসকিএল-ত্রুটি.লগে এটি ডাব্লু / ত্রুটি ভরাট হয়েছিল too many files open

2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorder_products.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorders.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsdevices.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsracks.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/v_classunity_classlist.frm' (errno: 24 - Too many open files)
2014-10-21 15:20:48 5190 [ERROR] Error in accept: Too many open files

এখানেই আমি আমার উলিমিট, ম্যাক্সফাইলস, ম্যাক্সপ্রোক ইত্যাদি "আপ-ইন" করে সেই সমস্যাটি সমাধান করার চেষ্টা শুরু করেছি ...

অবশেষে - হতাশ হয়ে আমি এগিয়ে গেলাম এবং পরে আবার সেই সমস্যাটিতে ফিরে আসব। সুতরাং আমি চেষ্টা করছিলাম sudo gem install nokogiri এবং বারবার এটি ব্যর্থ হবে এবং এই একই ত্রুটিটি থুথু ফেলবে (বিল্ডার সম্পর্কে অনেক পুনরাবৃত্তি। আরবি রত্নের দেশীয় বর্ধন তৈরি করতে ব্যর্থ হয়েছে - এরপরে পুনরাবৃত্ত স্ট্যাকট্রেসস লগস সংক্ষেপ

নোকোগিরি ত্রুটিগুলি ইনস্টল করুন নোকোগিরি ইনস্টল ত্রুটি

এই সমস্যাটি সমাধান করার জন্য আমি বিভিন্ন পদ্ধতির একগুচ্ছ চেষ্টা করেছি / গুগল করেছি (যেমন: অতিরিক্ত পতাকা ইত্যাদি।)। কী আশ্চর্যজনক - এবং আমি যখন ভাবতে শুরু করেছিলাম এই সমস্যাটি ফাইলের # ফাইলের সাথে যুক্ত / প্রসেস খোলা তখনই আমি topরত্নটি ইনস্টল করার সময় যাচাই করেছিলাম .... আমি কী পেয়েছি তা দেখে আমি অবাক হয়ে গেলাম

শীর্ষ সময় gem install nokogiri সুডো মণি ইনস্টল নোকোগিরি

দেখে মনে হচ্ছে যে আমার প্রক্রিয়াটি দৃking়তা অব্যাহত রেখেছে, যা আমার আগের ছবিতে এই এক লাইনের জন্য অর্থপূর্ণ হয়েছিল ("নোকোগিরি ত্রুটির চিত্র ইনস্টল করুন" দেখুন)

sh: fork: Resource temporarily unavailable

সুতরাং আমি ধারণা থেকে দূরে আছি, কিন্তু আমি কীভাবে আর # টি ফাইল ডিবাগ করব তা সত্যই নিশ্চিত নই?

হালনাগাদ

ঠিক আছে, আমি নোকোগিরি ইনস্টল করতে পেরেছি। দুর্ভাগ্যক্রমে, আমি ঠিক নিশ্চিত নই যে এটিকে ঠিক করার জন্য খ / সি আমি অনেকগুলি চেষ্টা করেছি। তবে আমি মনে করি এটি রুবি ডাব্লু / রিস্টল ইনস্টল করতে হয়েছিল। যাইহোক, আমি এখনও একই সমস্যা ডাব্লু / আমার ডিবি অনেকগুলি ফাইল খোলা সম্পর্কে অভিযোগ করে যখন আমি তুচ্ছভাবে ছোট নয় এমন কোনও ডাটাবেস ব্যবহার করি।


হুঁ। সম্ভবত এত স্পাঙ্ক করা উচিত নয়? সম্ভবত সেই রত্নটির ডিভসের সাথে বাগ উত্থাপনও মূল্যবান।
22:34

উত্তর:


16

/etc/launchd.confঅনেকগুলি গুগল ক্যোয়ারী এবং এসও পরামর্শ অনুসারে প্রতি পরিবর্তন করা আমার কাছে যোসোমেটে (10.10) তে কাজ করবে বলে মনে হচ্ছে না। কাজ শেষ হওয়ার পরে, অসংখ্য পরিবর্তন / রিবুট / পরীক্ষা সংমিশ্রণের পরে, /etc/sysctl.confফাইলটি সংশোধন করা হয়েছিল (বা এটি উপস্থিত না থাকলে তৈরি করছে) ।

এটি এটি কাজ করতে আমাকে রাখতে হয়েছিল

kern.maxfiles=65536
kern.maxfilesperproc=65536

আমি kern.maxfilesসেখানে থাকতে হবে কিনা তা নিশ্চিত নই , তবে আমি যখন নিজে নিজে এটির মধ্যে ছিলাম তখনও আমার একই সমস্যা ছিল, যখন আমি সমস্ত kern.maxfilesperprocকিছু যুক্ত করে কাজ শুরু করেছিলাম ।


আমি দেখতে পেয়েছি যে এই পরিবর্তনগুলি কার্যকর হওয়ার জন্য (প্রত্যাশারূপে) পুনঃসূচনা প্রয়োজন। আপনি নিশ্চিত করতে পারেন যে কাজগুলি করে মানগুলি পরিবর্তিত হয়েছে sysctl -a | grep kern.maxfiles
ব্লেক ফ্রেডরিক

8

ম্যাক ওএস এক্স ইয়োসেমাইটে সিস্টেম-ভিত্তিতে ওপেন ফাইল সীমাটি সামঞ্জস্য করতে আপনাকে অবশ্যই দুটি কনফিগারেশন ফাইল তৈরি করতে হবে। প্রথমটি হল একটি সম্পত্তি তালিকা (ওরফে প্লাস্ট) ফাইল /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>65536</string>
          <string>65536</string>
        </array>
       <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>

এটি ওপেন ফাইলগুলির সীমা 65536 এ সেট করবে The দ্বিতীয় প্লাস্ট কনফিগারেশন ফাইলটি /Library/LaunchDaemons/limit.maxproc.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.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

উভয় plist ফাইলই মালিকানাধীন root:wheelএবং এর অনুমতি থাকতে হবে -rw-r--r--। এই অনুমতি ডিফল্টরূপে জায়গায় হওয়া উচিত, কিন্তু আপনি নিশ্চিত করতে পারি যে তারা চলমান দ্বারা জায়গা আছে sudo chmod 644 <filename>। উপরে বর্ণিত পদক্ষেপগুলি সিস্টেম-প্রশস্ত ওপেন ফাইল সীমাটিকে পুনরায় চালু করার সময় সঠিকভাবে সেট করার কারণ ঘটবে, আপনি এগুলি চালিয়ে নিজে প্রয়োগ করতে পারেন launchctl limit

সিস্টেম পর্যায়ে এই সীমার সেটিং ছাড়াও, আমরা পাশাপাশি দ্বারা অধিবেশন পর্যায়ে সেটিং আপনার টু নিম্নলিখিত পংক্তিগুলি সংযোজন সুপারিশ bashrc, bashprofileঅথবা অনুরূপ ফাইল:

ulimit -n 65536
ulimit -u 2048

প্লাস্ট ফাইলগুলির মতো আপনার বাশার্ক বা অনুরূপ ফাইলেরও -rw-r--r--অনুমতি থাকা উচিত । এই মুহুর্তে, আপনি আপনার কম্পিউটারটি পুনরায় চালু করতে পারেন এবং আপনার টার্মিনালে ইউলিমিট-এন প্রবেশ করতে পারেন। যদি আপনার সিস্টেমটি সঠিকভাবে কনফিগার করা থাকে তবে আপনার দেখতে হবে যে ম্যাক্সফাইলগুলি 65536 এ সেট করা হয়েছে।

উত্স থেকে উত্সাহিত: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/


1
"লঞ্চাক্টল সীমাটি সীমাহীন সীমাহীন সীমাহীন; লঞ্চাক্টল সীমা ম্যাক্সফিলস" জানাচ্ছে যে 2015-09-30 এ আমার ইয়োসেমাইটে 10.10.5 সর্বাধিক 10240 রয়েছে এবং তাদের সাথে প্রায় পরীক্ষা-নিরীক্ষা করে দেখা যাচ্ছে যে আপনি যদি বৃহত্তর সুস্পষ্ট সংখ্যা ব্যবহার করেন তবে এটি হবে উপেক্ষা করেছেন।
ডেভ এক্স

5

ইয়োসেমাইটে ডিফল্টগুলি 12 কে এবং 10 কে বলে মনে হচ্ছে:

$ sysctl -a | grep kern.maxfiles
kern.maxfiles: 12288
kern.maxfilesperproc: 10240

শুধু সেটিং kern.maxfilesমধ্যে /etc/sysctl.confআমার সমস্যার সমাধান হয়েছে বলে মনে হয়। /etc/sysctl.confফাইল:

kern.maxfiles=24576

সিয়েরার জন্য ঠিক একই মানগুলি
ডিভিন জি রোড

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