মেমরির চাহিদা বাড়লে লিনাক্স বড় ডিস্ক ক্যাশে মুক্ত করে না


24

2.6.31-302 x86-64 কার্নেলে উবুন্টু চালানো হচ্ছে। সামগ্রিক সমস্যাটি হ'ল আমার কাছে 'ক্যাশেড' বিভাগে স্মৃতি রয়েছে যা অবিরত থাকে এবং যখন আমাদের অ্যাপ্লিকেশনটির প্রয়োজন হয় তখনও মুক্তি বা ব্যবহার করা হবে না।

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

# free
             total       used       free     shared    buffers     cached
Mem:       7358492    5750320    1608172          0       7848    1443820
-/+ buffers/cache:    4298652    3059840
Swap:            0          0          0

কেউ প্রথমে যা বলতে চলেছে তা হ'ল "চিন্তা করবেন না, লিনাক্স সেই স্মৃতিটি স্বয়ংক্রিয়ভাবে পরিচালনা করে।" হ্যাঁ, আমি জানি যে মেমরি পরিচালকটি কীভাবে কাজ করার কথা; সমস্যাটি হ'ল এটি সঠিক কাজ করছে না। এখানে "ক্যাশেড" 1.4 গিগাবাইট সংরক্ষিত এবং অব্যবহৃত বলে মনে হচ্ছে।

লিনাক্স সম্পর্কে আমার জ্ঞান আমাকে বলে যে 3 জিবি "ফ্রি"; তবে সিস্টেমের আচরণ অন্যথায় বলে। যখন 1.6 গিগাবাইট রিয়েল ফ্রি মেমরিটি পিক ব্যবহারের সময় ব্যবহার করা হয়, যত তাড়াতাড়ি আরও মেমোরি দাবি করা হয় (এবং প্রথম কলামে 'ফ্রি' 0 এর সাথে যোগাযোগ করা হয়) ওওএম ঘাতককে অনুরোধ করা হয়, প্রক্রিয়াগুলি মেরে ফেলা হয় এবং সমস্যা দেখা দিতে শুরু করে তবুও - / + বাফার / ক্যাশে সারিতে 'ফ্রি' এখনও প্রায় 1.4 জিবি 'ফ্রি' রয়েছে।

আমি কী প্রক্রিয়াগুলিতে oom_adj মানগুলি টিউন করেছি যাতে এটি সিস্টেমকে তার হাঁটুর কাছে না নিয়ে আসে তবে তারপরেও গুরুত্বপূর্ণ প্রক্রিয়াগুলি মারা যায় এবং আমরা কখনই এই পর্যায়ে পৌঁছাতে চাই না। বিশেষত যখন, তাত্ত্বিকভাবে, 1.4 গিগাবাইট এখনও "ফ্রি" থাকে যদি এটি কেবলমাত্র ডিস্ক ক্যাশেটিকে উচ্ছেদ করে।

এখানে কি চলছে কারও কি ধারণা আছে? লিনাক্স 'ফ্রি' কমান্ড এবং "কেন আমার কোনও ফ্রি মেমরি নেই" সম্পর্কে বোবা প্রশ্নে ইন্টারনেট প্লাবিত হয়েছে এবং সে কারণে আমি এই সমস্যা সম্পর্কে কিছুই খুঁজে পাচ্ছি না।

আমার মাথায় প্রথম যে জিনিসটি আসে তা হ'ল অদলবদল বন্ধ। আমাদের সিসাদমিন রয়েছে যা এটি সম্পর্কে অনড়; তাদের ব্যাক আপ নেওয়া হলে আমি ব্যাখ্যায় উন্মুক্ত open এটি কি সমস্যার কারণ হতে পারে?

এখানে চালানোর পরে বিনামূল্যে echo 3 > /proc/sys/vm/drop_caches:

# free
             total       used       free     shared    buffers     cached
Mem:       7358492    5731688    1626804          0        524    1406000
-/+ buffers/cache:    4325164    3033328
Swap:            0          0          0

আপনি দেখতে পাচ্ছেন, কিছু ক্ষুদ্র পরিমাণে ক্যাশে আসলে মুক্তি পেয়েছে তবে প্রায় 1.4 জিবি "আটকে" আছে বলে মনে হচ্ছে। অন্য সমস্যাটি হ'ল এই মানটি সময়ের সাথে সাথে বেড়েছে। অন্য সার্ভারে ২.০ জিবি আটকে আছে।

আমি সত্যিই এই স্মৃতি ফিরে চাই ... যে কোনও সহায়তা সর্বাধিক প্রশংসিত হবে।

cat /proc/meminfoএটি কোনও কিছুর জন্য মূল্যহীন যদি এখানে থাকে:

# cat /proc/meminfo 
MemTotal:        7358492 kB
MemFree:         1472180 kB
Buffers:            5328 kB
Cached:          1435456 kB
SwapCached:            0 kB
Active:          5524644 kB
Inactive:          41380 kB
Active(anon):    5492108 kB
Inactive(anon):        0 kB
Active(file):      32536 kB
Inactive(file):    41380 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               320 kB
Writeback:             0 kB
AnonPages:       4125252 kB
Mapped:            42536 kB
Slab:              29432 kB
SReclaimable:      13872 kB
SUnreclaim:        15560 kB
PageTables:            0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3679244 kB
Committed_AS:    7223012 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        7696 kB
VmallocChunk:   34359729675 kB
DirectMap4k:     7340032 kB
DirectMap2M:           0 kB

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

আমার চিন্তা ঠিক. পরামর্শের জন্য ধন্যবাদ. অদলবদীর প্রয়োজনীয়তা সম্পর্কে আপনি অন্য কোনও ভাল নিবন্ধ বা যুক্তি জানেন?
ত্রিসিউব

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

দুর্দান্ত, টিপসের জন্য ধন্যবাদ। আপনি mmap'd ফাইলগুলি সম্পর্কে সঠিকভাবে বলেছিলেন - একটি দ্রুত lsof মেমরিটি গ্রহণ করার জন্য লগ ফাইলগুলির জিগগুলি দেখিয়েছিল। তাদের সাফ করার মাধ্যমে সমস্যার সমাধান হয়েছে।
ত্রিশ্বেব

সমস্যাটি হ'ল অদলবদল না করে ওওএম কিলার চালিত হয়ে ওভার কমমিটিং ফলাফল চালায় এবং প্রক্রিয়া আরম্ভ করতে পারে না এমন সিস্টেমে অতিরিক্ত কমমিটিং ফলাফল না করে। র‌্যামের কার্যকর ব্যবহার করতে আপনাকে অদলবদল দরকার।
ডেভিড শোয়ার্জ

উত্তর:


8

আমি আমার নিজের প্রশ্নের উত্তরটি আবিষ্কার করেছি - ওম্বলের সাহায্যের জন্য ধন্যবাদ (যদি আপনি চান তবে একটি উত্তর জমা দিন)।

lsof -s ফাইলের হ্যান্ডলগুলি ব্যবহারে দেখায় এবং দেখা যায় যে এমএমপ'ড লগ ফাইলগুলি ক্যাশে হাতে নিয়েছিল সেখানে বেশ কয়েকটি গিগাবাইট ছিল।

লোগ্রোটেট প্রয়োগের মাধ্যমে সমস্যাটি পুরোপুরি সমাধান করা উচিত এবং আমাকে আরও মেমরির সুবিধা নিতে দেওয়া উচিত।

আমি অদলবদলকে পুনরায় সক্ষম করব যাতে ভবিষ্যতে ওওএম ঘাতকের সাথে আমাদের কোনও সমস্যা না হয়। ধন্যবাদ।


2
এমএমএপড পৃষ্ঠাগুলি বাতিলযোগ্য তাই যাতে ক্যাশে পিন করা উচিত নয়। আপনি একটি ramfs ব্যবহার করছেন?
psusi

হাই, একটি পুরানো থ্রেড খনন করে দুঃখিত, তবে আমি বর্তমানে একই সমস্যার মুখোমুখি হয়েছি এবং lsof -sকোনও অস্বাভাবিক ব্যবহার দেখায় না। তবে, আপনি যেমন বলেছিলেন আমি তেমন একটি র‌্যামফ ব্যবহার করছি [এবং ২.6.১০ কার্নেল, যার ড্রপ_ক্যাচ বৈশিষ্ট্য নেই]। সম্ভবত আপনার সন্দেহ কি?
রাম

1
ভকভগক! আমি lsof -s | sort -rnk 7 | lessএখন আমার সরঞ্জামবক্সে যুক্ত করছি । অন্যান্য পাঠকদের জন্য একটি নোট: এটি বড় এন্ট্রি পছন্দ করতে পারে /proc/net/rpc/nfs4.nametoid/channelতবে তারা আমার ক্ষেত্রে দোষী হতে পারেনি।
নিকোলে

আপনার বড় ফাইল বা প্রোগ্রামগুলি মলক ব্যবহার করছে না তা নিশ্চিত করুন। মধ্যে /proc/meminfo"Unevictable" বিষয়শ্রেণীতে অন্তর্ভুক্ত নিবন্ধসমূহ দিকে তাকাও।
মাইকেল মার্টিনেজ

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