CentOS এ ফাইল করার জন্য একটি সময়কালে একটি সিপিইউ / র‌্যাম ব্যবহারের লগ লিখুন


8

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

আমি বিভিন্নতার সাথে চেষ্টা করে যাচ্ছি topতবে ভাগ্য নেই। আমি বেশ কয়েকটি সেন্টস ভার্চুয়াল সার্ভার চালাচ্ছি, ভিএম একটি 2 জিবি র‌্যাম, 2 প্রসেসর।

একটি স্ক্রিপ্ট যা কোনও পাঠ্য ফাইলে তথ্যের সাথে লাইন লেখার সময় একটি নির্দিষ্ট পরিমাণের সাথে কাজ করে তাই শেষে আমি ডেটা সহ একটি টেবিলের কাজ করতে পারি।

আমি সার্ভারটি পরীক্ষা করতে যাচ্ছি, এবং কিছু পরিসংখ্যান তৈরি করার জন্য আমার কাছে ডেটা থাকতে চাই।

উত্তর:


11

মান psযথেষ্ট

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

ফলাফল:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

প্রথম ক্ষেত্রটি হল% এর সিপিইউ ব্যবহার, দ্বিতীয়টি কেবিটসে শারীরিক মেমরির ব্যবহার।


যে নিখুঁত, আমি ইতিমধ্যে একটি শীর্ষ ব্যাচ আউটপুট থেকে সমস্ত তথ্য পরিষ্কার করার জন্য একটি দীর্ঘ স্ক্রিপ্ট তৈরি করেছিলাম, তবে উপায় সহজতর এবং কার্যকরভাবে আমি প্রচুর পরিমাণে প্রশংসা করি, ধন্যবাদ!
কেপঙ্ক

শেষ পর্যন্ত আমি আমার স্ক্রিপ্টটি ব্যবহার করতে থাকি, যেহেতু পিএস আমাকে লোড গড় দেয় যা সাধারণত সিপিইউ% এর সমান হয় তবে এটি কোনও নিয়ম নয়, দ্রুত গুগল অনুসন্ধানে এর আরও তথ্য
কেপঙ্ক

1
এখানে% সিপিইউ বিরতিতে ব্যবহৃত% নয়, তবে প্রোগ্রামের পুরো চলমান সময়ের তুলনায় গড় শতাংশ। আমি বিশ্বাস করি এটি বিভ্রান্তিকর।
সেল করবে

2

আপনি যদি যথাযথ সময় সম্পর্কে চিন্তা করেন এবং শতাংশে সিপিইউ চান:

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'

1

আমি পরামর্শ sadc/ sar


এটি কি কেবল সিস্টেম-ব্যাপী নয়?
হোয়াইটকিয়ার্ক

@ হোয়াইট কোয়ার্ক: এটি সংস্করণটির উপর নির্ভর করে sar। কিছু সংস্করণ sar -x PIDঅন্যদের ব্যবহার ব্যবহার করে pidstat -p PID
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
saji89

0

আপনি একটি নির্দিষ্ট প্রক্রিয়াটির জন্য কত সিপিইউ সময় প্রয়োজন তা পর্যবেক্ষণ করার চেষ্টা করছেন।

আমি সেন্টোসের জন্য সিপিইউ স্ট্যাট সরঞ্জামটির পরামর্শ দিতে যাচ্ছি ? তবে এটি কেবল একটি প্রক্রিয়া নয় পুরো সিস্টেমের জন্য এটি পায়।

যে কোনও একটি প্রক্রিয়া পিপি এর আউটপুটে সিপিইউ সময় প্রদর্শন করবে:

$ ps -ef | egrep blah
root     13988 11152  0 Dec16 ?        00:00:05 sshd: xxx [priv]
xxx      14024 13988  0 Dec16 ?        00:06:00 sshd: xxx@pts/0
xxx      14032 14024  0 Dec16 pts/0    07:00:00 -bash
root      1194   679  0 Apr24 ?        2-05:15:14 [kswapd0]
root      1195   679  0 Apr24 ?        2-06:35:49 [kswapd1]
  • 00:00:00 ঘন্টা / মিনিট / সেকেন্ড সিপু হয়। জমে উঠবে।
  • ব্যবহারকারী যদি আপনি না হন তবে এটি দেখার জন্য আপনাকে অনুমতি নিতে হবে।
  • এই মানটি একবারের উপরে উঠলে ফর্ম্যাটটি পরিবর্তিত হয়; উপরে এটি 2 দিন। আপনার পার্সিং রুটিন এটিকে পরিচালনা করতে হবে।

এই মুহুর্তে পাইথনের সাথে আউটপুটটি বিশ্লেষণ করুন, এটিতে কিছু তারিখের গণিত কাজ করুন এবং আপনি সোনালী।


0

নিম্নলিখিত কমান্ডটি একটি নির্দিষ্ট প্রক্রিয়ার জন্য প্রতি 40 সেকেন্ডে সিপিইউ এবং মেমরির ব্যবহারের গড় (পিড) পায়

pidstat 40 -ru -p <pid>

আমার ক্ষেত্রে আউটপুট (সিপিইউ ব্যবহারের জন্য প্রথম দুটি লাইন, মেমরির জন্য দ্বিতীয় দুটি লাইন):

02:15:07 PM       PID    %usr %system  %guest    %CPU   CPU  Command
02:15:47 PM     24563    0.65    0.07    0.00    0.73     3  java

02:15:07 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
02:15:47 PM     24563      6.95      0.00 13047972 2123268   6.52  java
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.