LINUX.ORG.RU

А где у змеи заканчивается шея и начинается хвост? Это должно быть что-то вроде вытесняющего тиринга, скорее всего самому колхозить.

blind_oracle ★★★★★
()
Ответ на: комментарий от anc

В точку - ТС надо переписать софт.

Но, для начала, ТС надо подпереть софт костылём, пока оно переписывается.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

Ну, должно конфигуряться как мне разумеется. В принципе, фана ради можно было бы такой fuse модуль написать, только это соразмерно, и даже чуть более трудозатратно, правкам в софте а потому - ненужно. Суть в том - что произвольный доступ, это ситуация стремящаяся к невозможности, в отличии от записи в хвост.

Сам софт пишет в mmap, можно попросить писать в open, возможно тут можно как то сыграть, но я, что то не вычитал в мане ничего что могло бы помочь без переписывания поделия.

pon4ik ★★★★★
() автор топика

LVM позволяет вручную мапить куски логического пространства в физическое. Куски называются термином extent.

Andrey_Utkin ★★
()
Ответ на: комментарий от pon4ik

Очень плохой «звоночек», нет, ОООчень плохой «Набат». Если довели до такого.
Ну а раз ssd уже пробовали, то явно деньги есть, закупайте много рамы и вперед все в нее. И скажите что не вариант :)

anc ★★★★★
()
Ответ на: комментарий от anc

Ну на самом деле - всё не так и плохо, просто надо ещё лучше.

А так да, щас это рамом и решается, но за то и деньги получаем так сказать, что бы казённый рам не тратить понапрасну, ибо туда ещё чего запихнуть есть же ж.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от Andrey_Utkin

Это я уже нагуглил, но не узрел возможности, как можно указать, что часть файла (притом именно хвост) живёт на одном носителе а часть на другом. Да и не похож lvm на такого типа решение - там наоборот всё должно стремиться к сокращению фрагментации.

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

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Там низкоуровневые команды, читайте внимательнее официальные доки. Экстенты по умолчанию имеют размер порядка мегабайтов. Вручную можно указывать, какие экстенты (диапазонами, вроде) куда адресуются. Мне не приходилось их использовать на практике, так что подробно не подскажу.

Andrey_Utkin ★★
()
Ответ на: комментарий от pon4ik

Я бы попробовал btier (https://sourceforge.net/projects/tier/files/, http://www.lessfs.com/wordpress/?p=924) - вроде бы оно как раз отвечает твоим хотелкам. Можно создать виртуальное устройство, состоящее из рамдиска и hdd. Политика миграции настраивается в sysfs в духе «мигрировать из памяти на диск блоки если их не трогали столько-то секунд», настраивается интервал миграции и т.п. Попробуй, мож подойдёт.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Спасибо, возможно попробую, хотя вроде уже начался процесс редизайна и переписывания софта, теперь не факт, что это даст достаточно времени, что бы окупились прыжки с ним :)

pon4ik ★★★★★
() автор топика
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от pon4ik

ssd уже пробовали - не лезет.

не лезет что? ssd в сервер? файл в ssd? Скорости всё-равно мало?

AngryElf ★★★★★
()

Вообще, ты мне напоминаешь наших манагеров. Которых надо вначале понять, чё они хотят, а не тупо делать, что они просят. Потому что это две разные вещи, никак не связанные между собой.

Вот ты хочешь конец файла иметь в памяти, а начало на диске. Судя по тому, что это немножко нестандартный usecase и готовых тулзей для этого нету, твоя задача - или поставлена неправильно, или решается криво.

Соответственно, оптимально, если ты изложешь, не что ты пытаешься делать, а что тебе надо получить. С какой-то более подробной вводной - размер этого файла, например (1 он или много их), характер нагрузки на файл (на начало и конец разная ж, да?), в iops и kbps, параллельность её же.

Банально обычный дисковый кэш операционной системы держит в памяти часто используемые куски файла. Если тебе этого мало - у тебя явно какая-то херня в конфигурации (про которую ни слова) или апликации (этого ты хотя б не отрицаешь).

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Очень много пафосных буков. Однако я таки поясню - запись, блокирующая, в mmap файл. Рано или поздно, обычно это почти периодично наблюдающийся n-байт окно, случается аномальный по времени залипон где то в дисковой подсистеме.

Если underlying fs есть tmpfs - залипон пропадает. Все остальные варианты ситуацию - не меняют.

Поэтому, как воркэраунд, до нормального решения было желание поискать fs которая пишет в память определённое (настраиваемое) количество блоков, который скидывает на диск по мере их устаревания.

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

Т.к. дисковый кэш хэндлит таки все файлы в системе, а i/o и так довольно много, полагаться на него бесполезно. А то что есть проблема в приложении по моему очевидно из хэдпоста...

Проблема в приложении однозначно будет исправлена, как минимум сиё можно поправить на уровне настроек mmap, увеличив размер страницы. Однако для этого нужно переписать чужой код, и потратить время.

pon4ik ★★★★★
() автор топика
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от AngryElf

Это добро пробовали по разному. Нормальный результат был только на tmpfs.

Пока имеются более насущные дела, поэтому профайлинга не было где поджимает. Файлов 4 штуки больших и один маленький. Большие где то по 20-40gb за n часов (не более суток). Маленький это индекс по ним, пишется он чаще больших. Размер файлов тут не особо важент, т.к. «плохое» поведение наблюдается только под нагрузкой.

Вообщем не парься - профайлинг по фотографии, это не интересно. Вопрос был про конкретное ПО, а не про решение моих проблем. А это ваше лоровское «тебе это не нужно» - ненужно(с).

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

hdd/ssd?

Просто у меня лично все проблемы с IO исчезали с переходом на SSD, апликацию трогать не приходилось. А 20-40 гигов в сутки - это, простите, вообще не нагрузка, тут и hdd за глаза (у меня лично есть сервис с 10-20 гигабайтами логов в сутки, в myisam - работает и не пыхтит. На hdd). Особенно если это append-only. Я чё-т затрудняюсь вообще представить, что там за база такая кривая.

Если б объем был в терабайтах, я б ещё мог понять, что SSD мог быть дороговат. Лет 5 назад...

AngryElf ★★★★★
()
Ответ на: комментарий от pon4ik

Вопрос был про конкретное ПО, а не про решение моих проблем.

Ну да. Поэтому я и «наехал многобуквами», что регулярно с такой херней на работе встречаюсь. И если б я решал вопрос каждый раз так, как меня просят, а не так, как надо в итоге, до сих пор бы на похапе скриптики писал бы.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

работает и не пыхтит

Работает, не пыхтит, иногда, под нагрузкой выдаёт латентность милисекундную заместо микросекундной.

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.