выполнения lsof, очень медленные в моем сервере

Я просто изменил бы первую строку сценария:

CONTENT=$(tr -d \\r < /path/to/text/file.txt)

8
задан 19 June 2017 в 13:02
3 ответа

Если вы уверены, что можете пропустить открытые TCP или UDP-соединения, поскольку вы упомянули, что их слишком много, вы можете использовать зависящий от диалекта параметр lsof -X .

lsof -X

Прочтите страницу руководства lsof и выполните поиск по запросу '-X' для получения подробной информации.

7
ответ дан 2 December 2019 в 22:43

Я нашел этот небольшой пакет NPM, который приводит в порядок замечательное задание ускорения lsof для файлов: https://www.npmjs.com/package/lsof-mac-fast.

я создал сценарий обертки для использования его:

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 мс, кажется, хорошо работает.

0
ответ дан 2 December 2019 в 22:43

Передайте параметр -n , чтобы пропустить разрешение DNS-имен IP-соединений. Это почти наверняка будет главной составляющей любого замедления.

16
ответ дан 2 December 2019 в 22:43

Теги

Похожие вопросы