ফ্রিবিএসডি: "অনেক বেশি খোলার ফাইল" তবে আরও 160,000 ফাইল খুলতে সক্ষম হওয়া উচিত


11

আমার কাছে একটি ফ্রিবিএসডি 8 সিস্টেম চালু রয়েছে জেডএফএস, একটি মাইএসকিউএল 5.5 সার্ভার যা প্রায় 355 জিবি এবং টেরাবাইটের একজোড়া হওয়ার সম্ভাবনা রয়েছে।

মাইএসকিউএল "প্রচুর ওপেন ফাইল" সম্পর্কে ত্রুটিগুলি ট্রিগার করছে /etc/hosts.allow। আমরা স্পষ্টভাবে ব্যবহার করি না /etc/hosts.allow, তবে এটি হোস্ট_অ্যাক্সেস (3) ( libwrap.a) ব্যবহার করে, যা অনেক কিছুই ব্যবহার করে।

mysqld[1234]: warning: /etc/hosts.allow, line 15: cannot open /etc/hosts.allow: Too many open files

তবে আমি যখন যাচাই করি না মনে হয় কোনও আসল সীমা ছুঁড়েছে। kern.openfiles staysএকটি টেকসই সময়কালে 40,000 এর নিচে উল্লিখিত ফাইলগুলির সংখ্যা এবং আমাদের সীমা যথেষ্ট পরিমাণে বেশি:

# sysctl -a |grep files
kern.maxfiles: 204800
kern.maxfilesperproc: 184320
kern.openfiles: 38191

# ulimit -n
184320

ওপেন ফাইলগুলি সীমাহীনতে সেট করা উচিত:

# grep openfiles /etc/login.conf
    :openfiles=unlimited:\

মাইএসকিউএল বলছে এটি 184320 ফাইল হ্যান্ডলগুলি খুলতে সক্ষম হওয়া উচিত:

# mysqladmin variables | grep open_files_limit
| open_files_limit                              |     184320                |

এবং মাইএসকিউএল ব্যবহারকারীর দৃষ্টিকোণ থেকে কিছু তথ্য। আমি মাইএসকিএল বন্ধ করে দিয়েছি এবং /usr/local/etc/rc.d/mysql-serverএই ভেরিয়েবলগুলি মুদ্রণ করতে হ্যাক করেছি , সুতরাং এটি মাইএসকিউএল পরিবেশের প্রতিনিধিত্ব করবে। নোট করুন যে 184320 সংখ্যাটি উপরের সাথে সামঞ্জস্যপূর্ণ।

# /usr/local/etc/rc.d/mysql-server.stefantest start
Starting mysql.
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  5547
open files                      (-n)  184320
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
sbsize                   (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited

এবং, সহজ রেফারেন্সের জন্য এখানে সিস্টোলের জন্য বর্ণনা রয়েছে:

kern.maxfiles: Maximum number of files
kern.openfiles: System-wide number of open files
kern.maxfilesperproc: Maximum files allowed open per process

সম্পর্কিত


4
উলিমিট বিশ্বব্যাপী নয়, আপনি কি নিশ্চিত যে আপনার মাইএসকিউএল একই উলিমিট চলছে?
ডারোবার্ট

1
সুতরাং, আমি কি মাইএসকিউএল ডেমনটির জন্য ওলিমিট মানটি দেখতে পাচ্ছি এবং আমি ডিমনকে থামিয়ে না দিয়ে ডিমনটির জন্য উলামিত মানটি পরিবর্তন করতে পারি? আমি জানি যে আমি ulimitস্টার্টআপ স্ক্রিপ্ট বা শেল পরিবেশে সেট করতে পারি , তবে এর জন্য আমার ডাটাবেসটি বাধাগ্রস্থ করতে হবে।
স্টেফান লাসিউইস্কি 20

1
আপনার মাইএসকিএল পরিষেবাটির পিআইডি সহ সাবডিরের নীচে / প্রোকে দেখুন। আপনি cat limitsদেখতে পাচ্ছেন যে মাইএসকিএল নিয়ে চলছে। আপনি echo -n "Max open files=soft_value:hard_value" > /proc/$PID/limits
ওগুলিতে

1
@ লরনিক্স: এটি ফ্রিবিএসডি। আমি নিজে কখনও বিএসডি ব্যবহার করি নি, তবে আমি নিশ্চিত নই যে ফ্রিবিএসডি আসলে / প্রো / / * / সীমা সমর্থন করে কিনা।
মার্টিন ভন উইট্টিচ

1
/procফ্রিবিএসডি-তে ডিফল্টরূপে মাউন্ট করা হয়নি, তবে এটি নিজেই করুন sudo mount -t procfs proc /proc, procfs(5)আরও তথ্যের জন্য দেখুন। একবার /procমাউন্ট হয়ে গেলে /proc/$PID/rlimitফাইলটি দেখুন
zygis

উত্তর:


1

/Etc/login.conf দেখুন এবং আপনার মাইএসকিএল ব্যবহারকারীকে কোন লগইন শ্রেণিতে নিয়োগ করা হয়েছে তা নির্ধারণ করুন। এটি সম্ভবত ডিফল্ট বা ডেমন। আপনি যদি আপনার ব্যবহারকারীর সীমা পরিবর্তন করতে চান, একটি নতুন শ্রেণি তৈরি করুন, আপনার ব্যবহারকারীকে সেই শ্রেণিতে নিয়োগ করুন, সেই শ্রেণীর জন্য সীমাবদ্ধতাগুলি আপনার পছন্দমতো পরিবর্তন করুন এবং তারপরে "cap_mkdb /etc/login.conf" চালান

আপনি যদি এখনও এটি না পড়েন তবে করুন : http://www.freebsd.org/doc/handbook/users-limiting.htm

সিস্টেম প্রারম্ভকালে / ইত্যাদি / আরসি দ্বারা প্রসেসগুলি ডেমন লগইন ক্লাসে বরাদ্দ করা হয় ।


0

কিছু ওএসে নিয়মিত ব্যবহারকারীর কাছে সুরক্ষা সমস্যা এড়াতে সীমাবদ্ধতা সেট করা থাকে, আপনার man limits.conf
এই ফাইলটি পড়ার বিষয়টি বিবেচনা করা উচিত যাতে প্রক্রিয়া অনুযায়ী সীমা সর্বাধিক সংখ্যক থ্রেড বা সর্বাধিক সংখ্যক উন্মুক্ত ফাইলের সীমা নির্ধারণ করা হয়। সীমাবদ্ধতার ব্যবহারের মুখটি সেখান থেকে আসতে পারে। /etc/security/limits.conf

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