Использование ввода-вывода для перенаправления / dev / null?

Я всегда использую nohup для запуска своей системы. Однако вывод nohup настолько велик, что я думаю перенаправить его на /dev/null . Моя проблема заключается в том, что перенаправление на /dev/null также приведет к некоторым операциям ввода-вывода, например записи в обычный файл?

Или я должен перейти на уровень кода и удалить всю информацию о регистрации? (Но мне они могут понадобиться).

Моя единственная проблема – использование и объем ввода-вывода и размер файла.

  • Высокий iowait, в то время как wMB / s низкий
  • Входной сигнал Bash
  • Как узнать, какие программы поддерживают потоковый ввод-вывод
  • Диск занят близким к 100%, а iowait - 0,0% на SunOS, как это возможно?
  • Файл замены процесса повторного использования Bash
  • Восстановление состояния памяти / помененного состояния при возобновлении спящего режима
  • Почему большая часть диска io связана с jbd2, а не с процессом, который фактически использует io?
  • IOStat сообщает о большой записи ocassional, но не находит никаких больших файлов
  • 3 Solutions collect form web for “Использование ввода-вывода для перенаправления / dev / null?”

    Данные, записанные в /dev/null , никуда не денутся. Поскольку файл не записывается ни в один файл, размер файла не влияет на него.

    Если программа записывает /dev/null , происходит системный вызов. Но системный вызов возвращается почти сразу, не записывая данные нигде. Таким образом, с точки зрения приложения есть ввод-вывод, но не с точки зрения аппаратного обеспечения.

    Никто, кроме вас, не знает, слишком ли дорого стоит письменная запись /dev/null . Если вы обеспокоены, контрольный показатель.

    Это немного похоже на проблему XY . То, что вы действительно должны делать, это добавить возможность контролировать уровень ведения журнала из файла конфигурации или командной строки, используя все большее число -v 's, ala. -vvv как и многие инструменты командной строки.

    Затем вы все равно можете вызывать свой сервер с помощью nohup и добавлять / удалять -vv.. переключение и добавлять его только при необходимости.

    Кроме того, посмотрите на использование реального средства ведения журнала , такого как log4j , log4perl , log4X, где X – это любой ваш язык. Затем вы можете контролировать уровень ведения журнала из файла log4X .conf, а также указывать такие вещи, как поворот журнала и т. Д.

    Очевидно, что вы можете перенаправить ведение журнала, поскольку оно соответствует /dev/null но это другие параметры, которые вы также должны рассматривать как разработчик.

    Запись на / dev / null несет ненулевую стоимость, но если она влияет на производительность вашей системы, автор программного обеспечения сделал что-то очень не так. Вызов sys_write () сильно оптимизирован. Написание данных, которые вы отправляете на него, пробивается через различные библиотеки и системы ядра, пока не ударит нулевой драйвер. Этот путь очень эффективен.

    Да, программа, вероятно, должна иметь флаг, который отключает вывод, но если это не так, и запись в / dev / null является проблемой производительности, у вас есть одна странная система.

    Помните, что «преждевременная оптимизация – это корень всего зла». Редактирование кода для исправления является пустой тратой времени, если вы не можете сначала написать контрольный показатель, который показывает, что это действительно самое узкое место в производительности.

    Историческая справка:

    В оригинальных версиях Linux был очень медленный / dev / null. Он сделал много обработки, чтобы выбросить данные в конце. Был неловкий бенчмарк (я не могу найти ссылку, извините!), Показывающий, что Linux / dev / null был намного медленнее, чем FreeBSD и Solaris (популярные Unix-подобные системы тогда). Следующий выпуск Linux имел намного более быстрый / dev / null. Аналогично, loopback NIC в Linux был очень медленным, потому что он полностью обработал пакет, проверил ошибки CRC (что не могло ошибиться) и проделать другую ненужную работу. Были опубликованы несколько неловко плохих тестов, и вскоре все было исправлено.

    Interesting Posts

    Расширение раздела Linux

    SSH Основные разрешения Настройки Chmod?

    Где vim после установки pkg?

    Удалить полную строку в текстовых файлах на основе тегов

    Построение кухонного прибора: поток, серфинг, сенсорный экран, загрузка быстро

    Как получить моно-apache-server4 на debian

    Сохранить позицию курсора и восстановить ее в терминале

    Открыть Sakura в домашнем каталоге

    Можно ли объявить локальную переменную без переопределения оригинала для дочерних процессов?

    Vi на Xenix: почему вместо прокрутки строка перезаписывает текущую строку?

    Какая конфигурация фильтра в скорости ядра ограничивает исходящие пакеты до 1packet / sec?

    Автоматизировать переименование файлов с 1 на неограниченное число

    Почему команда exit не выходит из вложенного цикла?

    Каковы пользовательские группы openSUSE 13.1 по умолчанию?

    sed диапазоны не всегда могут соответствовать только одной строке

    Linux и Unix - лучшая ОС в мире.