1

Когда я запускаю mke2fs -t [ext2|ext3|ext4] /dev/sda1 программа потребляет более 100 МБ памяти, что может быть довольно проблематично для встроенной системы. Это нормальное поведение? Есть ли способ как-то его опустить?

Дополнительная информация:

Я использую e2fsprogs 1.41.14. Пробовал запускать его на 1.42.11 с параметром -D который дал мне похожие результаты. Это означает, что это не проблема очистки кэша ввода-вывода.

Изменить: Большая часть памяти используется при создании журнала и информации суперблока. Память освобождается по завершении программы, поэтому утечка памяти может быть исключена.

Другое Править: у меня есть идея, не уверен, насколько точной она может быть. В комментариях мы с Майклом установили (я очень благодарен за вашу помощь и время, потраченное на эту проблему), что я могу быть не в состоянии что-то исправить в самой программе, но может быть какой-то кэш, который записывает много информации в память. Может быть, есть какой-то способ выяснить, какие программы использует кэши и можно ли их отключить или нет?

1 ответ1

2

Я связался с автором e2fsprogs и задал этот вопрос. После консультации я обновился до последней версии (1.43) с github. В обычном режиме мало что изменилось. Использование памяти немного лучше (90 МБ вместо 100 МБ), но опция -D (используйте direct_io, опускайте буферы / кеши), делая процесс в два или три раза дольше, значительно уменьшает объем памяти (~ 8-10 МБ). Стоит заметить, что я проводил аналогичный эксперимент с 1.42.x и не достиг аналогичных результатов.

Я могу принять эти результаты. Но их следует рассматривать как частичную победу, так как программа при использовании буферов / кэшей все еще потребляет много памяти.

Если кому-то нужна дополнительная информация по этой теме, я открыт для обсуждения.

У меня есть идея для решения этой проблемы, если я докажу, что эта идея работает, я опубликую результаты здесь

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .