lsof আমার সার্ভারে খুব ধীর গতিতে চলে


8

Ext3 সিস্টেমে একটি ফাইল ( /tmp/incoming_data.txt) অন্য প্রোগ্রামগুলি দ্বারা খোলা আছে কিনা তা পরীক্ষা করতে আমি আমার একটি লিনাক্স সার্ভারে lsof চালাচ্ছি । আমার সার্ভারে এটিতে প্রচুর টিসিপি সংযোগ রয়েছে। অদ্ভুত বিষয়টি হল 'sudo lsof' এর সম্পাদন শেষ হতে প্রায় দুই মিনিট সময় নেয় এবং এটি দুই মিনিটের মধ্যে 99.x% সিপিইউ ব্যবহার করে।

আমি যে কমান্ডটি ব্যবহার করেছি তা হ'ল sudo lsof /tmp/incoming_data.txt। আমি " ফুজার " চেষ্টা করেছি যা একই পরিমাণ সিপিইউ এবং সম্পাদনের সময় নেয়। আমি এই সমস্যার সমাধান করতে পারি এমন কি কিছু আছে?


এই দুই মিনিট কেটে যাওয়ার পরে কী lsofদেখায়? ফাইলটি কতগুলি প্রক্রিয়া এবং থ্রেডে খোলা আছে? Lsof না চালালে সিপিইউ লোডটি কী?
মাইকেল মার্টিনেজ 21

উত্তর:


7

আপনি যদি নিশ্চিত হন যে আপনি উন্মুক্ত টিসিপি বা ইউডিপি সংযোগগুলি এড়িয়ে যেতে পারেন, যেহেতু আপনি উল্লেখ করেছেন যে এর মধ্যে অনেকগুলি রয়েছে, আপনি lsof এর উপভাষা-নির্দিষ্ট বিকল্পটি ব্যবহার করতে পারেন -X

lsof -X

Lsof এর ম্যান পৃষ্ঠাটি পড়ুন এবং বিস্তারিত তথ্যের জন্য '-X' অনুসন্ধান করুন।


17

-nআইপি সংযোগগুলির ডিএনএস নামগুলি সমাধান করে এড়িয়ে যাওয়ার বিকল্পটি পাস করুন । এটি অবশ্যই কোনও ধরণের মন্দার বড় অংশ হবে।


1
হাই, @ জোরেদাছে, উত্তরের জন্য অনেক ধন্যবাদ। আমি -n এবং -P বিকল্প উভয়ই চেষ্টা করে দেখেছি এবং উভয়ই যদিও তাদের সাহায্য করবে বলে মনে হয় না। ধন্যবাদ সব একই!
জেমস গণ

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

1
এটি আমার জন্য ম্যাকস এক্স এল ক্যাপিটেন
অ্যান্ড্রু মাইনার

@ জামেসগান আমারও একই সমস্যা আছে। আপনি কি কখনও সমস্যাটি বুঝতে পেরেছেন?
নলডোরিন

গ্রেট। এটি আমার জন্য ম্যাকস 10.14
নিনজা

0

আমি এই ছোট্ট এনপিএম প্যাকেজটি পেয়েছি যা ফাইলগুলির জন্য lsof গতি বাড়ানোর এক দুর্দান্ত কাজ করে: https://www.npmjs.com/package/lsof-mac- ব্রেকফাস্ট

আমি এটি ব্যবহার করতে একটি র‍্যাপার স্ক্রিপ্ট তৈরি করেছি:

node ~/tools/MacOs/lsof.js db.mv.db 1000
repeating using interval: 1000
COMMAND  PID  USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
java    7336 jumar  256u   REG    1,4 194465792 53854404 
db.mv.db

এটি আমার লিপি:

// https://www.npmjs.com/package/lsof-mac-fast
var fastLsof = require('lsof-mac-fast');

var myArgs = process.argv.slice(2);
var fileToCheck = myArgs[0];
var repeatIntervalMs = myArgs[1];
// console.log('myArgs: ', myArgs);

function lsofFile(file) {
  fastLsof.lsof([file], function(err, stdout, stderr) {process.stdout.write(stdout)});
}

if (repeatIntervalMs) {
  // repeat until killed
  // https://javascript.info/settimeout-setinterval
  console.log('repeating using interval: ' + repeatIntervalMs);
  var timerId = setInterval(() => lsofFile(fileToCheck),  repeatIntervalMs);
} else {
  // just one time
  lsofFile(fileToCheck);
}

পুনরাবৃত্তি ব্যবধানটি সত্যই কম হতে পারে, যেমন 10 এমএস ভাল কাজ করে।

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