একটি বড় ফাইল অনুলিপি করার সময় আমি কীভাবে সংস্থান ব্যবহার হ্রাস করতে পারি?


8

এটির মেরামত করার জন্য আমাকে একটি পৃথক সার্ভারে একটি বড় ফাইল (দূষিত মাইএসকিউএল টেবিল ~ 40 গিগাবাইট) সরানো দরকার। (আমার প্রোডাকশন সার্ভারে মেরামত করার চেষ্টা করার সময় এটি সার্ভারটি দ্রুত মেরে ফেলেছে)।

এটি করার জন্য, আমি আমার প্রোডাকশন সার্ভার থেকে একটি ক্লাউড সার্ভারে .frm, .MYI এবং .MYD ফাইলগুলিকে আরএসএন করতে চাই।

আমি / var / lib / mysql / {ডাটাবেস} / থেকে / home / {myuser from থেকে ফাইলগুলি অনুলিপি করছি যাতে আমার আরএসসিএন কমান্ডের জন্য রুট অ্যাক্সেস সক্ষম করার প্রয়োজন হয় না এবং ডাটাবেস ফাইলটি 100% নিশ্চিত না হয় ব্যবহারে (এটিতে লেখা বা পড়া উচিত নয়, তবে অবশ্যই এটি নিশ্চিত করার জন্য আমি আমার প্রোডাকশন ডাটাবেসটি বন্ধ করতে চাই না)।

আমি প্রথম যে ফাইলটি অনুলিপি করার চেষ্টা করেছি সেটি ছিল প্রায় 10 জিবি। আমি আমার প্রোডাকশন সার্ভারের এক অংশ থেকে অন্য অংশে, অর্থাৎ ডিস্কের একই অ্যারে স্থানান্তরিত করছি।

দুর্ভাগ্যক্রমে কপি কমান্ড "সিপি ফাইলের নাম নতুন ফাইল" এত বেশি সংস্থান নিয়েছে যা এটি সার্ভারকে থামিয়ে দিয়েছে।

অন্য কোনও ডিরেক্টরিতে ফাইলটি অনুলিপি করার সময় আমি কীভাবে কম সংস্থান ব্যবহার করতে পারি? (এটি আসলে কতক্ষণ সময় নেয় তা বিবেচনা করে না)।

এই কাজটি পরিচালনা করে ধরে নিচ্ছি, ক্লাউডে ফাইলটি রিসাইং করার পরে আমি কোন সংস্থান ব্যবহারের আশা করতে পারি?

কেউ কি এটির জন্য আরও ভাল উপায়ের পরামর্শ দিতে পারেন? আমি দ্রুত ডিস্কের জায়গার বাইরে চলে যাচ্ছি তাই এই টেবিলটি মেরামত করে ASAP সংরক্ষণাগার নেওয়া দরকার need

উত্তর:


5

আপনি কি nice -n10কমান্ডের উপসর্গের চেষ্টা করেছেন ?

10ডিফল্ট মান। পরিসরটি -20(সর্বোচ্চ অগ্রাধিকার) থেকে 19(সর্বনিম্ন) পর্যন্ত যায়।


@ জোনাথন আমার বুঝতে পারছেন যে এটি কেবলমাত্র সিপিইউ ব্যবহার সীমিত করবে, ডিস্ক আই / ওআর
জন এম

হ্যাঁ তবে এটি একটি শুরু, বাধাগুলির মধ্যে একটি হ্রাস করার ক্ষেত্রে - এটি মেশিনটির ঝুলন্ত থামানো যথেষ্ট।
জোনাথন রস

ধন্যবাদ @ জনাথন রস, এর মতে: linux.die.net/man/1/ionice "প্রোগ্রামগুলি সিওইউর চমৎকার সেটিংসের অগ্রাধিকারের অধিকারী হয়" ", সুতরাং এটি কেবল কার্যকর হতে পারে তবে আমি" সুন্দর "এবং একটি সংমিশ্রণ নিয়ে গবেষণা করছি "আয়নিস"
জন এম

ভাল চিন্তা. আমি সবসময় niceবেশিরভাগ অভ্যাসের বাইরে থেকে শুরু করেছিলাম । iotopতোমার বন্ধুও
জোনাথন রস

3
আমি যে চূড়ান্ত কমান্ডটি চালালাম তা হ'ল nice -n 20 ionice -c 3 cp /var/lib/mysql/{database}/{table}.MYI /home/{USER}/এটি আমার সার্ভারে লোড বাড়িয়েছিল এটি কিছুটা কমিয়ে দিয়েছিল, তবে ওয়েবসাইটটি স্থানান্তরকালীন সময়ের জন্য উপলব্ধ ছিল
জন এম

10

আরএসসিএনসি ব্যান্ডউইথ সীমাবদ্ধতা ছাড়াও দুটি পছন্দ:

  • ionice -c 3 cp foo bar
  • buffer -u 150 -m 16m -s 100m -p 75 -i foo -o bar

ioniceআই / ও শিডিউলারের সাথে ইন্টারফেস করবে। bufferচরিত্রগত ডিভাইসগুলিকে আরও দক্ষ হওয়ার জন্য সহায়তা করার জন্য একটি বৃত্তাকার বাফার, তবে -u 150উইল লেখার মধ্যে 150 টি মাইক্রোসেকেন্ড বিরতি দেবে যা ম্যানুয়াল অনুসারে শ্বাস নেওয়ার জন্য একটি ডিস্ক রুম দেওয়ার পক্ষে যথেষ্ট হতে পারে।

উভয়ই ioniceএবং bufferস্টক উবুন্টু বিল্ডে উপলব্ধ। iotopআপনি যদি আপনার কার্নেলটিতে CONFIG_TASK_DELAY_ACCT কনফিগার করা হয়ে থাকে তবে তা কার্যকর, তবে আমার উবুন্টু বাক্সটি কমান্ডের ব্যবহারকে কঠোরভাবে সীমাবদ্ধ করে না। আমি ইতিমধ্যে জানি যে কমান্ডটি আমার হার্ড ড্রাইভটি ডুবছে, আমি কেবল এটি কিছু শ্বাসকষ্ট দিতে চাই।

অতিরিক্তভাবে, অনুলিপিটি চলাকালীন, iostat -x 1(সাধারণত সিস্টেস্ট প্যাকেজে) আউটপুটটি দেখুন এবং দেখুন যে অনুলিপিটির সময় আপনার ডিভাইসের জন্য ব্যস্ত ক্ষেত্রটি 90% বা তার চেয়ে কম রয়েছে। যদি এটি 99-100% এ থাকে তবে আপনি I / O এর জন্য অন্যান্য প্রক্রিয়া অনাহারে রয়েছেন।


আপনার reponse জন্য ধন্যবাদ @zerolagtime আমি একটি অনুরূপ ionice কমান্ড ব্যবহার করে শেষ পর্যন্ত কিন্তু সঠিক হিসাবে তার আগে উত্তর চিহ্নিত করেছেন
জন এম

ionice -c 3 -p $pidUnisonবাহ্যিক এইচডিডি, থ্যাक्सে একত্র হয়ে কাজ করছে!
কুম্ভ শক্তি পাওয়ার 21

6

--bwlimit = KBPS স্যুইচ (সীমা I / O ব্যান্ডউইথ; সেকেন্ডে KBytes) এর সাথে rsync ব্যবহার করুন। একটি ছোট ফাইলের সাথে চারপাশে খেলুন এবং স্থানান্তর গতি এবং সিস্টেমের ব্যবহারের মধ্যে অনুকূল মিশ্রণের সন্ধান করার চেষ্টা করুন। "Vmstat 1" দিয়ে দ্বিতীয় শেলের মধ্যে নজর রাখুন


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

আপনি স্থানীয় ফাইলটি অনুলিপি করতে এবং --wwlimit স্যুইচ দিয়ে ব্যান্ডউইথ সীমাবদ্ধ করতে rsync ব্যবহার করতে পারেন।
শাকালন্ডি

rsyncস্থানীয়ভাবে ফাইলগুলি অনুলিপি করবে। চিন্তা করুন rsync --bwlimit=28000 foo.frm /bar/foo.frmএবং তারপরে এটি দেখুন iostat। আমি নিশ্চিত না যে vmstatআপনি যদি কোনও ড্রাইভ স্যাটারটিং করছিলেন তবে আপনাকে কেন বলবে। % ব্যস্ত এ জন্য দেখুন iostat
জেরোলাটাইম

ভাল, vmstat ব্লক ডিভাইসে আপনার আইও দেখায়। এছাড়াও আপনি মেশিন ব্যবহারের জন্য গুরুত্বপূর্ণ যে কোনও কিছু দেখতে পাবেন (সিপিইউ, ব্যবহারকারী প্রক্রিয়া, সিপিইউ
ওয়েট

0

একটি বিকল্প হ'ল:

scp -l ${KBPS} ${src} ${dest}

তবে think {src a যদি একটি ক্রমবর্ধমান ফাইল হয় তবে এটি কাজ করবে বলে আমি মনে করি না ... আপনি কি উত্সটি অনুলিপি করার এবং অপেক্ষা করার কোনও উপায় বলতে পারেন ...

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