কিভাবে গ্রেপ কমান্ড সঠিকভাবে সময়?


9

আমি এই দুটি কমান্ডের গতি তুলনা করতে চাই:

grep pattern1 files* 
grep pattern2 files* 

দুর্ভাগ্যক্রমে, প্রথম গ্রেপ অনেকগুলি ফাইল * মেমরি বাফারে পড়ে, তাই দ্বিতীয় গ্রেপ খুব দ্রুত চলে তবে ভুল কারণে for

আমি কীভাবে লিনাক্সকে বলতে পারি (ফেডোরা ১১): "দয়া করে ক্যাশেড ডিস্ক পড়া বন্ধ করুন কারণ আমি কিছু পরীক্ষা করছি" "


সম্ভবত একটি চৌকস উত্তর আছে ... তবে আপনি ডিরেক্টরি কাঠামোটি নকল করতে পারেন, সুতরাং আপনি একই ফাইলটি নিয়ে কাজ করবেন না এবং আপনার ক্যাশে সমস্যা হবে না!
নিকো

1
অন্যদিকে: ফেডোরা ১১ জুন ২০১০-এর শেষের দিকে পৌঁছেছে It's এটি আপগ্রেড করার সময়। আসন্ন ফেডোরা 15 রিলিজটি দেখতে দুর্দান্ত লাগছে। অথবা, আপনার যদি দীর্ঘ জীবনকাল ধরে আরও স্থিতিশীল কিছু প্রয়োজন হয় (এবং আপনার মনে হয় আপনি সম্ভবত 11 বছরের উপরে রয়েছেন), সেখানে RHEL6 বা কোনও দিন-এখন
সেন্টোস

আরএইচ 7.3 থেকে এটিতে আপগ্রেড করতে আমার চিরতরে লেগেছিল! আপগ্রেডগুলি জিনিসগুলি ভঙ্গ করে এবং আমাকে ভয় দেখায়।
ব্যারিকার্টার

2
ক্যাচিং বন্ধ করে আপনি প্যাটার্ন মিলের গতি নয়, তবে আপনার ড্রাইভের গতিবেগটি বেনমার্ক করবেন। যেমন অন্যরা পরামর্শ দিচ্ছে - কেবল প্রথম কমান্ডটি দুইবার চালান: প্রথমে ক্যাশেটিকে প্রথমে, দ্বিতীয় স্থানে বেঞ্চমার্কে।
অ্যালেক্স

আমি এটি চেষ্টা করব, তবে আমার মূল সমস্যাটি হ'ল ডিস্কের গতি ... যখন আমি গ্রেপ চালাই তখন হার্ড ড্রাইভ বাদাম হয়ে যায়। হুম, ঠিক আছে, এর অর্থ এই হতে পারে যে গ্রেপকে অনুকূলকরণ করা মোটেও সহায়তা করতে পারে না ... আমি যে পরিমাণ ডেটা টানছি সেটিকে আমার অনুকূলিত করতে হবে to
ব্যারিকার্টার 16

উত্তর:


11

আমি মনে করি না আপনি সহজেই এটি "সাময়িকভাবে ক্যাশে থামাতে" বলতে পারেন। তবে আপনি যা করতে পারেন তা হ'ল সিস্টেমকে প্রতিটি রান করার আগে ক্যাশে ফেলে দিতে বলুন:

মূল হিসাবে:

sync; echo 3 > /proc/sys/vm/drop_caches

(এটি ডকুমেন্টেশন / sysctl / vm.txt এ কার্নেল ডক্সে নথিভুক্ত করা হয়েছে , যা আমাদের কারও মতো পছন্দ হলে আপনি 1, 2, বা 3 এর মানগুলি সর্বদা স্মরণ করতে পারবেন না))

অথবা পর্যায়ক্রমে, অবশ্যই ক্যাশেটিকে প্রধান করুন এবং ক্যাশেড পারফরম্যান্সটির সাথে তুলনা করুন। (আমি মনে করি উভয়ই দরকারী সংখ্যা))


1
echo 1কেবল পৃষ্ঠা ক্যাশে ফেলে দেবে, কোনও ডিস্ক ক্যাশে নয়।
jsbillings

@ জেএসবিলিংস - এর, হ্যাঁ সংশোধন করা হয়েছে।
ম্যাটডেম

অবিশ্বাস্যরকম ছোটখাটো নাইটপিকিং: আমাকে ">>" করতে হয়েছিল, ">" নয়
ব্যারিকার্টার

@ বার্যকার্টার: সত্যি? হাহ!
mattdm

3
@ বার্যকার্টার: আপনার শেলটিতে সম্ভবত একটি-নোক্লোবার সেট আছে, এটি এটি তৈরি করে যাতে এটি আপনাকে কোনও বিদ্যমান ফাইল ওভাররাইট করতে ব্যবহার করতে দেয় না।
jsbillings

1

এই জাতীয় জিনিসগুলির সময় দেওয়ার সময় আমি প্রথমে প্রথমে ক্যাশে প্রাইম চালিত করি। তারপরে সময়টি ব্যবহার করে কমান্ডটি চালান। এরকম কোনও কিছুর পরীক্ষায় আপনার সিপিইউ এবং অতিবাহিত সময় সম্পর্কে আরও বেশি উদ্বিগ্ন হওয়া উচিত এবং I / O সময় সম্পর্কে কম চিন্তিত হওয়া উচিত।

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


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

2
@barrycarter। যদি ফাইলগুলি ক্যাশে করা না থাকে এবং এটি যখন থাকে তখন এটি এক সেকেন্ডের মধ্যে চলে যায় তবে আমি মনে করি না আপনি অপ্টিমাইজেশনের জন্য খুব বেশি সুযোগ পাবেন। দ্রুত স্টোরেজে ফাইলগুলি সরানো সম্ভাব্য অপ্টিমাইজেশন হবে।
বিলথোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.