কিভাবে একটি প্রক্রিয়াটির সমস্ত মেমরি পৃষ্ঠাগুলি একটি NUMA নোড থেকে অন্য NUMA নোডে স্থানান্তরিত করতে হয়?


10

লিনাক্সে, আমি কেভিএম ভার্চুয়াল মেশিনের মেমরি পৃষ্ঠাগুলি রানটাইমের সময় একটি NUMA নোড থেকে অন্য একটি NUMA নোডে স্থানান্তর করতে চাই। তবে কেভিএম হাইপারভাইজারে বা libvirt এপিআই ব্যবহার করে এটি করার জন্য আমি কোনও ইন্টারফেস পাই না। তারপরে আমি numa_migrate_pagesফাংশনটি ব্যবহার করতে -lnumaএবং ভিএম প্রক্রিয়ার মেমরি পৃষ্ঠাগুলি স্থানান্তরিত করার চেষ্টা করেছি । তবে আমি দেখতে পেয়েছি যে numa_migrate_pagesফাংশনটি কেবলমাত্র কয়েকটি পৃষ্ঠাগুলি স্থানান্তর করতে পারে, এটি সমস্ত পৃষ্ঠা সরিয়ে নিতে পারে না। উদাহরণস্বরূপ, নীচের পাঠ্যটি এই ভিএম প্রক্রিয়াটির মেমরি পৃষ্ঠাগুলি বিতরণ দেখায়:

Node0:  0             pages
Node1:  1538          pages
Node2:  270641        pages
Node3:  552           pages

এবং আমি নোড 2-এর সমস্ত পৃষ্ঠা নোড0-তে স্থানান্তর করতে চাই। তবে numa_migrate_pagesফাংশনটি ব্যবহার করার পরে , কেবল কয়েকটি পৃষ্ঠাগুলি স্থানান্তরিত হবে, যেমন নীচের পাঠ্যটি দেখায়:

Node0:  7952          pages
Node1:  1538          pages
Node2:  262113        pages
Node3:  552           pages

তারপরে আমি ফাইলটি খুলি এবং দেখতে পাচ্ছি যে নোড 2 এ থাকা বেশিরভাগ পৃষ্ঠাগুলি বেনামে এবং মলিন পৃষ্ঠা:/proc/[pid of VM process]/numa_maps

7f572c000000 default anon=262143 dirty=262143 N2=262113 ...

তাহলে নোড 2-এর সমস্ত পৃষ্ঠা নোড0-এ স্থানান্তরিত করা যাবে না কেন? এখানে সমস্যা কি?


3
পাঠ্য আটকানোর সময় চিত্রগুলি পোস্ট করবেন না। চিত্রগুলি অনুসন্ধানের জন্য বা উত্তরের জন্য আটকানো যায় না, এমনকি আপনার মনিটরগুলিতেও এটির চেয়ে আলাদা আলাদাভাবে পড়তে পারে না (যেমন বড়, উচ্চ-রেজোলিউশন মনিটরের উপর অপঠিতভাবে ছোট ফন্টগুলি) বা দৃষ্টি-প্রতিবন্ধী ব্যবহারকারীরা যেমন স্ক্রিন-রিডার সফ্টওয়্যার ব্যবহার করে মুখ।
ক্যাস

আমার ধারণা যে আপনি নুমা মাইগ্রেট পৃষ্ঠাগুলি মূল হিসাবে চালাচ্ছেন?
Lmwangi

@ লামওয়ানগি হ্যাঁ, আমি মূল হিসাবে চালাচ্ছি।
জেনসন

লেনদেন সম্পন্ন করার জন্য নোডে-তে পর্যাপ্ত বিনামূল্যে পৃষ্ঠা রয়েছে?
অ্যারন ওয়ালারস্টাইন

উত্তর:


1

আপনি প্যাকেজ migratepagesমধ্যে বাইনারি চান numactl

ব্যবহার এবং উদাহরণ

sudo migratepages $VM_PID $SRC_NODE $DEST_NODE
sudo migratepages 12345 2 0

সীমাবদ্ধতা

ভিএম হার্ডওয়্যার

পৃষ্ঠাগুলি কোনও নোডে লক হয়ে থাকতে পারে, যেমন। যদি তারা হার্ডওয়্যার পাস-থ্রোয়ের সাথে সম্পর্কিত হয় এবং তারা একটি নির্দিষ্ট নোডে অবস্থিত হার্ডওয়্যার উপস্থাপন করে।

ফ্রি মেমরি এবং পৃষ্ঠার আকার

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

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