লিনাক্সে সকেটের সর্বাধিক সংখ্যা


12

দেখে মনে হচ্ছে সার্ভারটি 32720 ডলার সকেটে সীমাবদ্ধ ... এই সীমাটি বাড়াতে আমি প্রতিটি পরিচিত পরিবর্তনশীল পরিবর্তন চেষ্টা করেছি। সার্ভারটি 32720 খোলার সকেটে সীমাবদ্ধ থাকবে, এমনকি যদি এখনও 4Go ফ্রি মেমরি থাকে এবং 80% নিষ্ক্রিয় সিপিইউ থাকে ...

কনফিগারেশন এখানে

~# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63931
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 798621
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 2048
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63931
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

net.netfilter.nf_conntrack_max = 999999
net.ipv4.netfilter.ip_conntrack_max = 999999
net.nf_conntrack_max = 999999

কোন চিন্তা ? (এই প্রশ্নটি এখন পর্যন্ত ভাগ্যবিহীন স্ট্যাক-ওভারফ্লোতে জিজ্ঞাসা করা হয়েছে)


serverfault.com/questions/10852/… এর কিছু ভাল ডেটা রয়েছে
sysadmin1138


আমি ভাগ্য ছাড়াই পোস্ট করার আগে এই থ্রেডগুলি চেক করেছিলাম
দ্যস্কায়েড

উত্তর:


8

আমি খুঁজে পেয়েছি যে কি সবকিছু সীমাবদ্ধ ছিল:

max_map_count

যারা উত্তর দিয়েছেন সবাইকে ধন্যবাদ!


সুতরাং সকেট ছিল একটি লাল রঙের হেরিং। জানা ভাল.
pjz

আপনি কিভাবে এটি পরিবর্তন করবেন? আপনার কাছে এমন কোনও ডক রয়েছে যা এটির বর্ণনা দেয়?
রায়ান শিলিংটন

1
@ রায়ানশিলিংটন: ডকসস.একটিইন
ইন্ডেক্স

2

আপনি এটির জন্য ভুল জায়গায় সন্ধান করছেন; আপনি কোনও ব্যবহারকারীর সীমাতে চলছেন না, আপনি একটি 32 স্নিগ্ধ সিস্টেমে সাধারণত সিস্টেমের সীমাতে চলেছেন যা 2 এর 15 তম শক্তি, যা আমি আপনার সিস্টেমটি অনুমান করছি। পরীক্ষা করে দেখুন:

 % cat /proc/sys/kernel/pid_max 
 32768
 %

তবে আপনি এটিও পরিবর্তন করতে পারেন ; একটি 32-বিট মেশিনে যা নিখুঁত উপরের সীমা হিসাবে 2 ** 22 হবে, সুতরাং:

% sudo bash -c 'echo 4194303 > /proc/sys/kernel/pid_max'
%

আমি কিভাবে আপনি জানতে আগ্রহী।


pid_max ইতিমধ্যে 999999 এ রয়েছে
TheSquad

1

যদি আপনি প্রকৃতপক্ষে সকেটের সর্বাধিক সংখ্যার সন্ধানের চেষ্টা করছেন যা দিয়ে আপনি সংযোগগুলি খুলতে পারেন, আপনি বিড়াল / প্রক / সিএস / নেট / ipv4 / ip_local_port_range দেখার চেষ্টা করতে পারেন; এটি পোর্টগুলির পরিসীমা যা কার্নেল আউটবাউন্ড সকেটের জন্য ব্যবহার করবে এবং এটি আপনার বিতরণের উপর ভিত্তি করে বিভিন্ন ডিফল্ট রয়েছে। '1024 65535' এর মতো কিছুতে সেট করা যতটা প্রশস্ত আপনি এটি পেতে পারেন; এটি জিনিসগুলিতে সহায়তা করে কিনা তা দেখুন।


ip_local_port_range ইতিমধ্যে 1024 65535-এ রয়েছে
দ্যস্পাড

0

থ্রেডে অনুরূপ কিছু বলা হয়ে থাকলে আমি দুঃখিত, তবে এখন সেগুলি পড়ার আমার কাছে সময় নেই: <

প্রথম চেহারা দিয়ে আমি দেখতে পাচ্ছি যে আপনি উল্লেখ করেছেন সকেটের সংখ্যা সর্বাধিক ব্যবহারকারীর প্রক্রিয়ার অর্ধেক। যেহেতু আমি অনুমান করতে পারি যে আপনার প্রতিটি সকেটের জন্য একটি পৃথক প্রক্রিয়া রয়েছে (সম্ভবত আপনি কোনও সার্ভার চালান বা এরকম কিছু)

আপনি যা করতে পারেন তা হ'ল পরের বার আপনি সকেটের সীমাতে পৌঁছানোর সময় প্রক্রিয়াটির সংখ্যা পরীক্ষা করে দেখুন।

কেবল একটি ধারণা, আমি জানি না এটি সাহায্য করে কিনা।


না, এটি নয়: # পিএস-শেফ |
গ্রেপ-

এটা কি নিয়ন্ত্রিত পরিবেশের অধীনে? আপনি কিছু চেক করতে পারেন? উদাহরণস্বরূপ, প্রতিটি অনুরোধের সাথে কতটি প্রক্রিয়া তৈরি হয়? এছাড়াও, সার্ভারের অগ্রাধিকার কি? আপনি renice যদি এটি কিছু পরিবর্তন করে? যদি তা না হয় তবে আমি নিশ্চিত যে আপনি কোনও প্রক্রিয়াটির মধ্যে প্রক্রিয়া সীমা বা থ্রেডের সীমাতে পৌঁছেছেন:>
নিকোলাইডিস ফোটিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.