медленный / замороженный ext4 // синхронизация задач заблокирована на большом сервере в основном только для записи

Это должно работать и не требует дополнительного grep. Серийные данные извлекаются из datfile и добавляются в csv файл, все в одном скрипте.

#!/bin/bash
line=12
awk -v line=$line 'BEGIN{FS=":"}NR==FNR{if ($1 ~ /System serial number/) \
{sn=$2;nextfile} else {next}}{FS=",";if (FNR==line) $0=$1 FS $2 FS sn}1' datfile cvsfile

Смотрите онлайн тест здесь.

1
28.11.2016, 20:09
1 ответ

Теперь мы видим, что записывающее приложение отрубается, потому что (я полагаю) оно не может записывать на диск достаточно быстро.

Ну, оно не должно вот так просто взять и отрубиться! Я не думаю, что какая-либо файловая система гарантирует пропускную способность записи в условиях, близких к 100% заполненности. Ваше приложение плохо спроектировано с самого начала :(. Но, возможно, вы сможете его исправить... следующим шагом будет проверить, скомпилировано ли оно с отладочными символами, и попытаться получить трассировку стека, чтобы увидеть, где произошел segfault, и работать в обратном направлении.

Из недавно предоставленной информации похоже, что вы сталкиваетесь с проблемами производительности из-за того, что файловая система пытается поддерживать разумную дефрагментацию при заполнении почти на 100%. Я бы попробовал увеличить агрессивность процесса удаления, чтобы он пытался сохранить раздел на 25% свободного места или около того.

1
27.01.2020, 23:46

Теги

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