প্রশ্ন কিছু সব মেমরি খায় (আমি কিছু অ্যাপ্লিকেশন উপর মেমরি লিক সন্দেহ)। কিভাবে সনাক্ত করতে হবে?


আমার সার্ভার আছে যা তরলসুপ + আইসকাস্ট বান্ডেল এবং সহজ ওয়েবসাইট (httpd + mysqld) চালায়। বিশেষ কিছু না. প্রতি বছর প্রায় 2000+ দর্শক, প্রায় 50 টি অনলাইন একযোগে অনলাইন হয়।

সার্ভারে 8 গিগাবাইট র্যাম রয়েছে। সময় চলে গেলে, বিনামূল্যে মেমরির পরিমাণ ক্রমাগত হ্রাস পায়, যদিও সার্ভারে নতুন কিছু শুরু হয় না এবং কোনও নতুন ব্যবহারকারী নেই। কিছু সময়ে এটি স্যুপ শুরু হয়, সার্ভারে লোড হয় এবং এটি প্রতিক্রিয়াশীল হয়ে যায়। সাধারনত আমি সার্ভারটি আবার চালু করি ...

ঠিক কি মেমরি লিক সনাক্ত সনাক্ত করা যাবে? আমি সম্পদ ব্যবহারের নিরীক্ষণের জন্য শীর্ষ ব্যবহার করি, কিন্তু যতদূর আমি দেখি এটি কোনও সহায়ক দেখায় না:

enter image description here

যে মেমরি ব্যবহার করে কি খুঁজে বের করার কোন উপায় আছে? অথবা কি ডিস্ক ভীষণ swap শুরু হয়? সার্ভার রিবুট ছাড়া মেমরি মুক্ত করার কোন উপায়?


14
2018-04-09 18:43


উত্স


কোনও কারণে আপনি সার্ভারের পরিবর্তে কিছু পরিষেবাদি (অ্যাপাচি, তরলসাপ) পুনরায় চালু করার চেষ্টা করবেন না? - jamespo
আমি মূলত স্বাভাবিক মেমরি ব্যবহারের জন্য সাড়া। আমি এমন সরঞ্জামগুলির একটি সেট দিয়ে আপডেট করেছি যা সমস্যা সনাক্ত করতে সহায়তা করতে পারে। - BillThor
@ জেমসপো, আসলে আমি চেষ্টা করেছি, কিন্তু এটির কোন প্রভাব ছিল না, তাই পুনঃসূচনা হ'ল একমাত্র জিনিস যা আমি জানতাম তা সাহায্য করতে পারে। - jayarjo
4027092 কে ক্যাশে মেমরি ব্যবহার ব্যাখ্যা করা উচিত, না? আমি এই মুহুর্তে অন্যত্র একই সমস্যাতে কাজ করছি, এবং এ পর্যন্ত আমি বুঝতে পেরেছি যে মেমরি স্থানান্তর নিম্নলিখিত প্যারামিটারগুলির সাথে নিয়ন্ত্রিত হতে পারে: vfs_cache_pressure vm.dirty_ratio vm.dirty_background_ratio এটি সম্পূর্ণ সমাধান এবং কোন প্রতিক্রিয়া নয় সবচেয়ে স্বাগত জানাই। আমি এটা যেতে একটি সঠিক দিক আশা করি। - Tomasz


উত্তর:


চলমান top মেমরি মাপ রিপোর্ট করার জন্য ব্যাচ মোডে নিয়মিতভাবে জিনিসগুলি দক্ষিণে যাওয়ার সময় মেমরি ব্যবহার করে দেখতে পারে। Runing sar ব্যাচ মোডে মেমরি ব্যবহার, এবং সম্পর্কিত I / O কিছু ভাল ডায়গনিস্টিক দিতে হবে। চলমান munin সিস্টেমে মনিটরিং করার জন্য কোন মেমরি ব্যবহার করা হচ্ছে তা সম্পর্কে বিস্তারিত বিবরণ সহ একটি গ্রাফ দিতে হবে। এই অনেক সাহায্য করতে পারে।

প্রোগ্রামের সর্বাধিক মূল আকার সীমিত করতে আপনি limit.conf ব্যবহার করতে পারেন। যথাযথভাবে সেট, এই মেমরি লিক যে কোন প্রোগ্রাম হত্যা করা উচিত। এই pam_limits মডিউল সঙ্গে কাজ করে। সীমা এছাড়াও সেট করা যাবে ulimits কমান্ড।

আপনি কয়েকটি প্রোগ্রাম চালাচ্ছেন যা মেমরির বিশাল পরিমাণে ব্যবহার করতে পারে। আপনি তাকান পারে কিছু জিনিস অন্তর্ভুক্ত করতে পারেন।

  • দুর্বল প্রোগ্রামযুক্ত অ্যাপ্লিকেশন অধীনে চলমান apache2 মেমরি লিক করতে পারেন। যখন এটি ঘটে তখন আপনাকে স্মৃতির আকার বৃদ্ধি করতে হবে। আপনি সেটিংস দ্বারা নির্দিষ্ট সংখ্যক ব্যবহারের পরে শিশুদের পুনঃক্রিয়া করতে apache2 টিউন করতে পারেন MaxRequestsPerChild 100 বা তাই। যদি সমস্যাটি সমাধান করে তবে আপনাকে লিকটি সমাধান করতে হবে। আমি এই প্রথম দেখতে হবে।
  • MySQL মেমরির মধ্যে তথ্য লোড করার চেষ্টা করতে পারে। আপনার যদি মেমরির মধ্যে প্রচুর ডেটা থাকে তবে এটি কিছু হতাশার কারণ হতে পারে, তবে আপনি যা দেখছেন তা নাটকীয় হওয়া উচিত নয়।
  • আপনি একটি বড় আছে tmpfs ফাইল সিস্টেম মাউন্ট করা, ফাইল ব্যবহার করা হয় না মুছে ফেলা হলে আপনি মেমরি ফাঁস হতে পারে। বড় দীর্ঘ জীবিত ফাইল এছাড়াও একটি সমস্যা হতে পারে।
  • যদি সমস্যাটি প্রায় একই সময়ে ঘটে থাকে তবে আপনার একটি নির্ধারিত প্রোগ্রাম থাকতে পারে যা মেমরিটি লিক করে।
  • যদি আপনার কাছে এমন একটি প্রোগ্রাম থাকে যা ভাগ করা মেমরি বরাদ্দ করে তবে এটি প্রস্থান করার আগে এটি প্রকাশ না করে তবে আপনার কাছে অপেক্ষাকৃত অদৃশ্য মেমরি লিক থাকবে। ভাগ করা মেমরি মেমরি লক করা হয়, তাহলে এটি সোয়াপিং বাধ্য হতে পারে। উপলব্ধ শেয়ার মেমরি পরিমাণ সাধারণত অপেক্ষাকৃত সীমিত।
  • তরলসুপ + আইসকাস্ট বান্ডিল মেমরি ব্যবহার করে বাফারিং সমস্যাগুলিতে চালাতে পারে। আমি এই সংমিশ্রণটি ব্যবহার করি নি, তাই আমি নিশ্চিত নই যে এটি কীভাবে উপস্থিত হবে।

সাধারণ মেমরি ব্যবহার: ফ্রি মেমরি আপনি অনেক কিছু চান না। আপনার সিস্টেম দীর্ঘ সময়ের জন্য আপ হয়েছে এবং অনেক বিনামূল্যে মেমরি আছে কিছু ভুল। প্রতিটি সময় আপনি একটি ফাইল পড়তে বা লিখতে, ব্লক বাফার ক্যাশে যেতে হবে। এটি আপনার বিনামূল্যে মেমরি কমাতে হবে, এবং একটি ভাল জিনিস। সিস্টেম মেমরির জন্য অন্যত্র খুঁজছেন ছাড়া কয়েক প্রোগ্রাম শুরু করার জন্য পর্যাপ্ত স্থান রাখবে। যত তাড়াতাড়ি প্রোগ্রাম চালানো হয়, তখন তাদের স্মৃতি মুক্ত পুকুরে ফিরবে যখন তারা চলবে।

যখন আপনি বাফার ক্যাশে থাকা কোনও ফাইল পড়েন, তখন কোনও ডিস্ক অ্যাক্সেস প্রয়োজন হয় না এবং পঠনটি বাফার ক্যাশে সমাধান করা হয়। লেখা একটি অনুরূপ প্রক্রিয়া ব্যবহার করুন। আপনার সিস্টেমে মেমরি প্রয়োজন হলে, বাফার ক্যাশে ব্যবহৃত প্রথম স্থানগুলির মধ্যে একটি। সর্বাধিক বাফার অবিলম্বে মুক্তি করা যেতে পারে।

আপনি একটি মেমরি লিক আছে, আপনি বিনামূল্যে মেমরি এবং বাফার উভয় সঙ্কুচিত শুরু দেখতে পাবেন। এটি এখনও গুরুতর সমস্যা নয়, কারণ ফিক্সড মেমরি অবশেষে সোয়াপ স্পেসে সরানো উচিত। আপনার সিস্টেমটি সোয়াপ স্পেসটি পূরণ না হওয়া পর্যন্ত এখনও পর্যন্ত দৌড় দৌড়বে এবং বিন্দু প্রোগ্রামগুলিতে অবশিষ্ট অবশিষ্ট স্থানটি শুরু করা যাবে না। এটি সাধারণ যে সোয়াপ স্পেসের একটি ছোট পরিমাণ ব্যবহার করা যেতে পারে।


15
2018-04-10 00:50



আমার ক্ষেত্রে সমস্যা kinda অদ্ভুত। এমনকি যখন লোড বিশাল এবং সার্ভারটি ব্যাপকভাবে swaps, এমনকি প্রচুর পরিমাণে মেমরি (এমনকি আমি বাফার এবং ক্যাশে সম্পর্কে পড়ার পরে বুঝতে পেরেছি)। শীর্ষ ক্রমবর্ধমান ক্রমবর্ধমান মেমরির কোনো প্রক্রিয়া দেখায় না। কিন্তু লোড আপ এবং কিছু পয়েন্ট সার্ভার অব্যবহারযোগ্য হয়ে যায়: | বিস্তারিত প্রতিক্রিয়া জন্য ধন্যবাদ। - jayarjo
@ জায়ারজোঃ মুনিন ও স্যার কি ঘটছে তা সনাক্ত করতে সাহায্য করবে। যদি আপনার প্রচুর মেমরি থাকে তবে আপনাকে সোয়াপিং করা উচিত নয়। আপনি একটি ভিন্ন I / O সমস্যা থাকতে পারে। sar কোন পার্টিশনটিতে I / O আছে তা নিশ্চিত করতে সহায়তা করবে এবং সমস্যাটি আবিষ্কার করতে সহায়তা করবে। - BillThor
MaxRequestsPerChild পরামর্শের জন্য +1 - jamespo


আপনি এই কমান্ড ব্যবহার করতে পারেন র্যাম ব্যবহার সম্পর্কিত শীর্ষ 10 টি অ্যাপ্লিকেশন দেখতে:

ps -A --sort -rss -o comm,pmem | head -n 11

কখনও কখনও এই কমান্ড আপনাকে অনেক উপ-প্রক্রিয়া তৈরি করা হয়েছে যদি সাহায্য করে:

ps auxf

এই পদ্ধতিটি আপনি যা প্রসেস একসঙ্গে অন্তর্গত দেখতে পারেন।


11
2018-04-09 19:03



এই সহজ কমান্ড, ধন্যবাদ আমি ভবিষ্যতের জন্য তাদের মনে রাখবেন। কিন্তু সমস্যাটি সর্বদা উপরের প্রক্রিয়াগুলিতে রয়েছে (আপনি সংযুক্ত স্ক্রিনশটটিতে এটি দেখতে পারেন) - অ্যাপাচি, মাইএসকিউএল, তরলসপ, আইসকাস্ট। এবং সার্ভারের লোড হওয়ার সময় এমনকি যখন তারা একই পরিমাণ মেমরি (নগণ্য যোগ্য) ব্যবহার করে (বা অন্তত ব্যবহার দেখানো হয়) ব্যবহার করে: | - jayarjo
@ জাইয়ারজঃ প্রক্রিয়া সংখ্যা কতটা পরিবর্তিত হয়? আপনি আরো অনেক প্রসেস আছে? এবং এটি একটি প্রকৃত সার্ভার বা একটি ভার্চুয়াল এক? - Raffael Luthiger
আমি প্রসেস সংখ্যা কোন পরিবর্তন লক্ষ্য করেছি। মূলত যখন আমি শীর্ষে থাকি, যখন সার্ভারটি লোডের জন্য মরে যাচ্ছে তখন আমি মূল প্রশ্নে যা সংযুক্ত করেছি তার অনুরূপ একটি ছবি দেখি, বিশাল লোড ব্যতীত: | সার্ভার শারীরিক। - jayarjo
"Vmstat" (উদাঃ vmstat -s) এর সাথে আরও তথ্য পেতে চেষ্টা করুন। অথবা ইতিমধ্যে উল্লিখিত টুল "সর" সঙ্গে। আপনি কি সম্ভবত একটি র্যাম ভিত্তিক ফাইল সিস্টেম আছে? তাহলে হয়তো "iostat" আরও তথ্য দিতে পারে। - Raffael Luthiger
আমি সন্দেহ করেছি যে "pmem" (% এমইএম) ক্ষেত্রটি কিনা ps অথবা top মেমরি লিক সনাক্ত করার চেষ্টা করলে আউটপুটটি সঠিক জিনিস: এটি কি বর্তমানে ব্যবহার করা হয় এমন প্রকৃত মেমরির শতকরা শতাংশ নয়? কিন্তু প্রসেসের অন্যান্য অংশগুলি (লিঙ্কেড) মেমরি ব্যবহার করা যেতে পারে। সম্ভবত "আকার" বা "বনাম" একটি প্রক্রিয়া আকার পরিমাপ করার জন্য আরো উপযুক্ত হবে? উদাঃ, ps -A --sort -size -o comm,size | head -n 11 অথবা ps -A --sort -vsize -o comm,vsize | head -n 11 - imz -- Ivan Zakharyaschev


অ্যাপ্লিকেশন শর্তাবলী সত্যিই যে মেমরি ব্যবহার করা হয় না।

আপনাকে 'ক্যাশেড' মানটি কাটতে হবে যা পৃষ্ঠা ক্যাশে প্রতিনিধিত্ব করে যা আপনার প্রকৃত মেমরি ব্যবহারটি প্রোগ্রাম ব্যবহারের শর্তাবলী সম্পর্কে কোনও ভাল ধারণা পেতে পারে।

মূলত এই ভাল মেমরি ব্যবস্থাপনা এবং এই আদর্শ আপনি চান।

আরও তথ্যের জন্য এখানে লিঙ্কটি দেখুন: http://www.linuxatemyram.com/


8
2018-04-09 20:29



হ্যাঁ যে লিঙ্কটি পাওয়া যায় এবং বাফার এবং ক্যাশে সম্পর্কে পড়তে পারে, কিন্তু যতটা আমি পড়তে পারি সেগুলি থেকে, তারা সোয়াপিং করতে পারে না, তাই না? - jayarjo
@ জায়ারজো আমি বুঝতে পারি যে সেখানে কী ঘটেছে আমাদের তখন সমস্যাটি দেখাতে হবে। আপনি যে সংখ্যা দিয়েছেন তা সোয়াপিং বা প্রকৃত মেমরি ব্যবহারের অনেকগুলি দেখায় না। - Matthew Ife


আমি সত্যিই এই একটি প্রো না, কিন্তু তরল সাবান + icecast মাল্টিমিডিয়া সম্পর্কিত। যখন সিস্টেমটি বিনামূল্যে হয়, এটি ভবিষ্যতে ব্যবহারের জন্য ক্যাশে এবং / অথবা মেমরি দখল করে। এবং যদি নির্দিষ্ট সময়ের মধ্যে নির্দিষ্ট সময়ের মধ্যে ট্র্যাফিক বৃদ্ধি পায় তবে এটি সোয়াপিং শুরু করবে। এই মুহুর্তে, যদি অনুরোধগুলি (সামগ্রী দেখার ব্যবহারকারীরা) বৃদ্ধি পায় তবে প্রয়োজনে সংস্থানগুলি 8 গিগাবাইটের বেশি RAM হবে।


0
2017-12-23 18:36