কোন অ্যাপ্লিকেশনটি ননপ্যাজড মেমরি ফাঁস করছে তা আমি কীভাবে নির্ধারণ করব?


8

সম্প্রতি আমাদের লাইভ সার্ভারে আমাদের একটি সমস্যা হয়েছিল যা আমাদের ওয়েব অ্যাপ্লিকেশনটির প্রতিক্রিয়া বন্ধ করে দিয়েছে। আমরা সার্ভারটি রিবুট না করা পর্যন্ত 503 টি ত্রুটি পেয়েছি তা ঠিক ছিল। অবশেষে আমি এটি httpsr.log এ আবার খুঁজে পেয়েছি এবং পুরো 1_ সংযোগ_বিবর্তিত ত্রুটি পেয়েছি।

আরও তদন্তে মনে হয়েছিল যে আমরা ননপ্যাজড পুলের সীমাতে পৌঁছেছি। এর পর থেকে আমরা পুলমন.এক্সই ব্যবহার করে ননপ্যাজড পুল মেমরিটি পর্যবেক্ষণ করছি এবং আমরা বিশ্বাস করি যে আমরা ট্যাগটি চিহ্নিত করেছি যা সমস্যার সৃষ্টি করছে।

Tag   Type    Allocs       Frees       Diff       Bytes      Per Alloc
Even  Nonp  51,231,806   50,633,533   684,922   32,878,688      48

যদি আমরা পুলমন.এক্সই / জি ব্যবহার করি তবে এটি ম্যাপযুক্ত ড্রাইভারকে [<অজানা> ইভেন্ট অবজেক্ট] হিসাবে দেখায়।

এটি মোটামুটি কোনও সাহায্য নয়। আমার দল এই সমস্যাটি অনুসন্ধানে যথেষ্ট সময় ব্যয় করেছে এবং নির্দিষ্ট অ্যাপ্লিকেশন বা পরিষেবাতে এটিকে সংকীর্ণ করার জন্য কোনও প্রক্রিয়া খুঁজে পাচ্ছে না। আমি বুঝতে পারি যে বেশিরভাগ লোকেরা মেশিনে ননপ্যাজড মেমরি পুনরায় সেট না হওয়া পর্যন্ত সমস্যাগুলি সমাধান করে মনে হচ্ছে। কোনও প্রোডাকশন মেশিনে কাজ করার সময় আপনি যা দেখতে চান তা ঠিক এটি নয়।

আমি যদি টাস্ক ম্যানেজারটি খুলি এবং প্রক্রিয়া তালিকাটি দেখি। আমি 105K এর এনপি পুলের মান সহ মেইল ​​সার্ভিস.অ্যাক্সি দেখতে পাচ্ছি এটি দ্বিতীয় তালিকাভুক্ত প্রক্রিয়ার মানের চেয়ে 36K বেশি। আমাদের অতীতে আমাদের মেল সার্ভারের সাথে কিছু সমস্যা ছিল (যা এই সমস্যার সাথে সম্পর্কিত হতে পারে বা নাও হতে পারে) আমার অন্ত্র অনুভূতি হ'ল এটিই এই সমস্যাটি সৃষ্টি করছে।

তবে, আমরা পরিষেবাগুলি পুনরায় চালু করার আগে, আমি কেবল "অন্ত্র অনুভূতি" এর চেয়ে কিছুটা বেশি নিশ্চিত থাকতে চাই।

আমি পুলমন.এক্স.সি / সি ব্যবহার করার চেষ্টা করেছি কিন্তু এটি সর্বদা ত্রুটিটি প্রদান করে:

unable to load msvcr70.dll/msvcp70.dll

এবং এটি localtag.txt তৈরি করে না। আমার সহকর্মীকে ইন্টারনেট থেকে পুলট্যাগ.টিএসটি ডাউনলোড করতে হয়েছিল কারণ এটি কোথায় রয়েছে তা আমরা বুঝতে পারি না। আমাদের উইন ডিবাগার বা উইন ডিডিকে ইনস্টল নেই (যা আমি দেখতে পাচ্ছি)। সম্ভবত উপরের ত্রুটিটি দেওয়া হয়েছে কারণ আমাদের এইগুলির কোনও একটি ইনস্টলড নেই - তবে আমি জানি না।

শেষ পর্যন্ত আমি চেষ্টা করেছি:

C:\windows\system32\driver\findstr /m /l Even *.sys

এটি .sys ফাইলগুলির একটি মোটামুটি আকারের তালিকা ফিরে এলো এবং এটি সমস্যাটি হাতে পাওয়ার পরেও কার্যকর ছিল না।

সুতরাং আমার প্রশ্নটি হ'ল: এই স্মৃতিশক্তি ফাঁসের কারণকে সঙ্কীর্ণ করার কোনও অন্য উপায় আছে কি?

হালনাগাদ:

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

আমি আগে উল্লেখ করতে ভুলে গেছি যে কোনও প্রক্রিয়াই হ্যান্ডলগুলির অত্যধিক সংখ্যক ব্যবহার করে না বলে মনে হয়।

আপডেট 2:

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


সমস্ত প্রক্রিয়াগুলির জন্য পুল ননপেজড বাইটগুলি পর্যবেক্ষণ করতে এবং পলাতক ননপেজড পুল মেমরির সাহায্যে প্রক্রিয়াটি অনুসন্ধান করার জন্য কেন পারফোন ব্যবহার করবেন না?
joeqwerty

পারফরম্যান্স মনিটরের সাথে আমার কিছুটা নাটক হয়েছিল এবং আপনার পরামর্শ অনুসারে এটি করার জন্য সেট আপ করেছি। তবে এটি আমাকে সত্যিই এমন কিছু বলে না যা আমি ইতিমধ্যে টাস্ক ম্যানেজারের দিকে তাকানোর মাধ্যমে জানতাম না। মেল সার্ভিসে ননপেজড পুলের সর্বাধিক ব্যবহার রয়েছে তবে এটি কেবল 106 কে at সুতরাং এটি ঠিক ধূমপানের বন্দুকটি আমি খুঁজছিলাম না।
বিকাশকারী

সময়ের সাথে সাথে প্রক্রিয়াগুলিতে পুল ননপ্যাজড বাইটগুলি বাড়ানোর জন্য সন্ধান করুন। এটি সময়ে যে কোনও এক মুহুর্তে প্রক্রিয়া দ্বারা ব্যবহারের তাত্ক্ষণিক দৃষ্টিভঙ্গিটি দিয়ে সহজেই আপাত হতে পারে না। আপনি কোনও সিএসভি ফাইলে সংরক্ষণের জন্য কাউন্টার লগ সেট আপ করে সহজেই সময়ের সাথে সাথে ব্যবহারটি ক্যাপচার করতে পারেন এবং এক্সেল দিয়ে এটি খুলতে পারেন যাতে প্রতিটি প্রক্রিয়া বৃদ্ধি পাওয়ার বিশ্লেষণ করতে পারেন। সিস্টেম প্রারম্ভ থেকে পুল ননপ্যাজড বাইটে 10% বা ততোধিক বৃদ্ধি দেখায় এমন কোনও প্রক্রিয়া মেমরি ফাঁস করছে এবং সম্ভবত প্রক্রিয়াটি সমস্যার কারণ হতে পারে
joeqwerty

সম্পর্কিত কাউন্টার ডেটা ক্যাপচার এবং বিশ্লেষণে সহায়তা করার একটি সহজ সরঞ্জাম হ'ল পল সরঞ্জাম, এটি এখানে পাওয়া গেছে: pal.codeplex.com/relayss/view/51623# রিভিউস অ্যাঙ্কর । এটি আমার ব্যবহারের চেয়ে একটি নতুন সংস্করণ তবে এর একটি x86 সংস্করণ রয়েছে এবং দেখে মনে হচ্ছে এটি ডাব্লু 2 কে 3 তে ব্যবহার করা যেতে পারে।
joeqwerty

আমি এনপি পুল বাইট রেকর্ড করতে একটি লগ ফাইল সেট আপ করেছি। পুলমন এখন বলছে যে আমার ননপ্যাজড মেমরির ব্যবহার 68MB। আমি এটি নির্ধারণের চেষ্টা করে যাচ্ছি এমন ঘন্টা কয়েকের মধ্যে এটি প্রায় ২-৩ এমবি বৃদ্ধি পেয়েছে। প্রক্রিয়াগুলির জন্য এনপি মানগুলিতে কোনও প্রবৃদ্ধি নেই (যা আমি দেখতে পাচ্ছি)। প্রকৃতপক্ষে পৃথক প্রক্রিয়াগুলির বিরুদ্ধে এনপি পুলের মানগুলি এই সংখ্যার কাছাকাছি কোথাও নেই। এমনকি যদি আমি সমস্ত তালিকাভুক্ত এনপি পুলের মানগুলি যোগ করে থাকি তবে মোট ভাগ্যবান হবে 1MB না 68MB। তবে আমি এখানে কিছু মিস করছি।
বিকাশকারী

উত্তর:


6

আমি এখন প্রায় 6-7 সপ্তাহ ধরে এটি পর্যবেক্ষণ করছি এবং অবশেষে সমস্যার একটি সুস্পষ্ট উত্তর দিতে পারি।

প্রথমত স্বতন্ত্র প্রক্রিয়াগুলির জন্য ননপ্যাজড বাইটস সত্যই আমাকে কার্যকর কিছু বলত না কারণ তারা সকলেই তাদের ব্যবহারের ক্ষেত্রে মোটামুটি স্থির বলে মনে হয়। স্পাইকগুলি ছিল তবে ব্যবহারটি সর্বদা পরে বেস লাইনে ফিরে আসে।

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

এরপরে পরবর্তী প্রশ্নটি ছিল: রবিবার দ্বি-সাপ্তাহিকে কী চলছে? আমি ইভেন্ট ভিউয়ারে একবার নজর রেখেছি এবং প্রতিবারই স্পাইকের ঘটনা ঘটে ম্যাকাফি চলছে । আমি আরও মনে করি সার্ভারে ঘন ঘন সমস্যাটি নিরীক্ষণ করার জন্য আমরা অজান্তেই সমস্যাটি আরও খারাপ করে দিয়েছি কারণ ম্যাকাফির রিয়েল টাইম স্ক্যানার রয়েছে এবং আমি বিশ্বাস করি এটি আমাদের দেখানোর চেয়ে আরও কম বৃদ্ধি ঘটিয়েছে।

আমি মনে করি যে স্ক্যানগুলি নির্ধারিত কাজগুলিও তা ব্যাখ্যা করে যে আমরা কেন ম্যাকাফি নির্দিষ্ট ট্যাগের পরিবর্তে পুলমনে ইভেন্ট অবজেক্ট ট্যাগের সাথে এনপি মেমরি বৃদ্ধি পেয়েছি। এটিই মূল জিনিস যা সত্যই আমাদের বাগানের পথে নামিয়েছিল।

এখন যেহেতু আমরা শেষ পর্যন্ত জানি যে এই ফাঁসের কারণ কী তা আমরা এ সম্পর্কে কিছু করতে পারি। এটি অবিশ্বাস্য যে যদিও এটি সন্ধান করতে এটি দীর্ঘ সময় নিয়েছিল।

আপডেট : ঠিক চূড়ান্ত নোট হিসাবে। ম্যাকাফির উইকএন্ডে আপডেট হয়েছিল এবং এটি আমাদের অ-পৃষ্ঠাযুক্ত মেমরির সমস্যার সম্পূর্ণ সমাধান করে।

আপডেট 2 : যেহেতু আমি সবেমাত্র এইটির জন্য একটি ভোট পেয়েছি, আমি এটিতে আরও একটি আপডেট যুক্ত করব। প্রাথমিকভাবে ম্যাকএফির আপডেটটি আমাদের সমস্যার সমাধান করতে দেখা গিয়েছিল অর্থাৎ আমরা আর নিয়মিত বিরতিতে এনপি মেমোরিতে বিশাল স্পাইক দেখতে পাই না। আমি আরও খেয়াল করেছি যে আপডেটের পরে মনে হচ্ছে ম্যাকাফি এখন ডিফল্টরূপে ইভেন্ট ভিউয়ারে লগ লিখবে না, যা সক্রিয়ভাবে স্ক্যান করা অবস্থায় লুকায়।

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

আমি তখন থেকে পড়েছি এবং আমি জানি না যে এটি সত্য কিনা, তবে সমস্যাটি ম্যাকাফির সাথে নয়, তবে উইন্ডো রেনটেনের কিছু নিয়মের সাথে যা ম্যাকাফি ব্যবহার করে যা এনপি মেমরি ফাঁস করে দেয়। স্পষ্টতই, নেটওয়ার্ক কার্যকলাপ লিকের কারণ হ'ল আরও নেটওয়ার্ক ক্রিয়াকলাপ => বড় লিক। এটি আমাদের অভিজ্ঞতার সাথে সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে, আমাদের সার্ভারটি ব্যস্ত হয়ে যাওয়ার সাথে সাথে ফুটোটি আরও খারাপ হয়ে গেছে।

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