(нормальное поведение) Высокое потребление памяти при обмене с внутренними демонами (баг или фича?)

Цитата: kpdozer от 23/09/2019, 15:14Добрый день. Прошу вас помочь понять физику процесса. Очень хотел бы использовать роутер в качестве домашнего NAS.
Много лет я не мог этого сделать на разных роутерах, по причине того, что при закачке файлов например через Samba например, загрузка CPU увеличивалась до 100% и скорость обмена не превышала 5мб/сек. В случае с SNR-CPE-ME1, кажется, что процессор не является узким местом. Картина такая:
При чтении большого файла (>10гб) через FTP с USB-HDD подключенного к роутеру, свободная ОЗУ уменьшается с 200 мб до 6 мб. Скорость режется до 7 мб/сек ( тип файловой системы USB-HDD на это не влияет (EXT2 или EXT4 или exFAT)).
Тоже самое при записи через FTP и тоже самое при работе Transmission. Складывается впечатление, что от демона это не зависит, а зависит от интенсивности обмена.
Последнее время я использовал ТV Box на Amlogic прошитый в Openelec. Я понимаю, что не корректно сравнивать данные CPU, объемы ОЗУ сильно разные, но хотелось бы понимать почему узким местом является ОЗУ? Нет ли программной проблемы? Или, может быть, я в принципе не верно всё трактую?
Спасибо.
Добрый день. Прошу вас помочь понять физику процесса. Очень хотел бы использовать роутер в качестве домашнего NAS.
Много лет я не мог этого сделать на разных роутерах, по причине того, что при закачке файлов например через Samba например, загрузка CPU увеличивалась до 100% и скорость обмена не превышала 5мб/сек. В случае с SNR-CPE-ME1, кажется, что процессор не является узким местом. Картина такая:
При чтении большого файла (>10гб) через FTP с USB-HDD подключенного к роутеру, свободная ОЗУ уменьшается с 200 мб до 6 мб. Скорость режется до 7 мб/сек ( тип файловой системы USB-HDD на это не влияет (EXT2 или EXT4 или exFAT)).
Тоже самое при записи через FTP и тоже самое при работе Transmission. Складывается впечатление, что от демона это не зависит, а зависит от интенсивности обмена.
Последнее время я использовал ТV Box на Amlogic прошитый в Openelec. Я понимаю, что не корректно сравнивать данные CPU, объемы ОЗУ сильно разные, но хотелось бы понимать почему узким местом является ОЗУ? Нет ли программной проблемы? Или, может быть, я в принципе не верно всё трактую?
Спасибо.

Цитата: sfstudio от 23/09/2019, 15:55
- Узким местом по прежнему будет являться CPU.
- То что вы видите это банальное кэширование. Linux выделяет под кэши FS столько памяти сколько свободно (что правильно, ибо какой смысл держать пустуой RAM если можно с пользой её применить). Если вдруг эта память понадобиться кэши будут тут же сброшены на диск, а память выдана тому кто её захотел.Читайте о том как Linux работает с памятью, разбирайтесь.
зависит от интенсивности обмена
Именно так и происходит, пока свободная рама есть то запись на диск будет откладываться до последнего, и скорость будет высокой т.к. не будет затрат на обслуживание USB и иже с ним. Как только выбрали физ память (данные-то продолжают поступать быстрее чем CPU осиливает скидывать на диск через USB данные, а значит сколько не будь рамы кэш всегда бует под завязку) начинается постоянная запись на диск с освобождением кэша, с последующим мгновенным его заполнением новыми данными и т.д. Вот тут уже узкое место будет и рама и CPU одновременно, по вполне понятным причинам. Быстрее CPU и HDD (ну и его интерфейс, например требующий меньше накладных расходов на обслуживание аля SATA вместо USB) - меньше будет использоваться рамы под кэши т.к. кроме всего прочего кэши сбрасываются на винт ещё и по таймауту, а не только по заполнению до упора. Больше рамы (физически) - больше эффект от временной разгрузки cpu за счёт отложенной физ записи на накопитель. У роутеров узко и там и сям, ещё и вместо SATA торчит USB.
Ну и так, на всякий. Под файлопомойку MIPS based CPU применяемые в роутерах подходят крайне плохо ибо нет даже банального FPU. Да и совмещать файлопомойку и роутер на одном устройстве без виртуализации/изоляции чревато и далеко не только утыканием в скудные ресурсы в роутерах.
Более того, я уже это дело пояснял (и по памяти и по производительности) на этом форуме. Пользуйтесь поиском.
P.S. Рекомендую таки рассмотреть для файлопомойки иное какое-нить устройство, и лучше даже не на MIPS/ARM а взять какой-нить безвентиляторный x86. У китайцев полно всяких атомов/целеронов бзвентиляторных нынче, с полноценными сата контроллерами и возможностью использовать дистрибутив общего назначения, или даже специализированные под NAS. Роутер должен оставаться роутером.
- Узким местом по прежнему будет являться CPU.
- То что вы видите это банальное кэширование. Linux выделяет под кэши FS столько памяти сколько свободно (что правильно, ибо какой смысл держать пустуой RAM если можно с пользой её применить). Если вдруг эта память понадобиться кэши будут тут же сброшены на диск, а память выдана тому кто её захотел.Читайте о том как Linux работает с памятью, разбирайтесь.
зависит от интенсивности обмена
Именно так и происходит, пока свободная рама есть то запись на диск будет откладываться до последнего, и скорость будет высокой т.к. не будет затрат на обслуживание USB и иже с ним. Как только выбрали физ память (данные-то продолжают поступать быстрее чем CPU осиливает скидывать на диск через USB данные, а значит сколько не будь рамы кэш всегда бует под завязку) начинается постоянная запись на диск с освобождением кэша, с последующим мгновенным его заполнением новыми данными и т.д. Вот тут уже узкое место будет и рама и CPU одновременно, по вполне понятным причинам. Быстрее CPU и HDD (ну и его интерфейс, например требующий меньше накладных расходов на обслуживание аля SATA вместо USB) - меньше будет использоваться рамы под кэши т.к. кроме всего прочего кэши сбрасываются на винт ещё и по таймауту, а не только по заполнению до упора. Больше рамы (физически) - больше эффект от временной разгрузки cpu за счёт отложенной физ записи на накопитель. У роутеров узко и там и сям, ещё и вместо SATA торчит USB.
Ну и так, на всякий. Под файлопомойку MIPS based CPU применяемые в роутерах подходят крайне плохо ибо нет даже банального FPU. Да и совмещать файлопомойку и роутер на одном устройстве без виртуализации/изоляции чревато и далеко не только утыканием в скудные ресурсы в роутерах.
Более того, я уже это дело пояснял (и по памяти и по производительности) на этом форуме. Пользуйтесь поиском.
P.S. Рекомендую таки рассмотреть для файлопомойки иное какое-нить устройство, и лучше даже не на MIPS/ARM а взять какой-нить безвентиляторный x86. У китайцев полно всяких атомов/целеронов бзвентиляторных нынче, с полноценными сата контроллерами и возможностью использовать дистрибутив общего назначения, или даже специализированные под NAS. Роутер должен оставаться роутером.

Цитата: kpdozer от 23/09/2019, 16:46Спасибо за подробное разъяснение. Теперь мне все понятно. Меня вполне устраивают железки на amlogic. Скорость обмена в районе 30мб/сек (и возможно больше, если бы не USB2.0).
Теоретический вопрос: Что мешает использовать процессоры amlogic в роутерах (например премиум класса)?
Спасибо за подробное разъяснение. Теперь мне все понятно. Меня вполне устраивают железки на amlogic. Скорость обмена в районе 30мб/сек (и возможно больше, если бы не USB2.0).
Теоретический вопрос: Что мешает использовать процессоры amlogic в роутерах (например премиум класса)?

Цитата: sfstudio от 23/09/2019, 16:54Например то, что придётся скрещивать ужа с ежом, т.е. SOC заточенный под декодирование видео без ускорялок сети, без встроенного радио, ещё и слепливать с радиомодулями других вендоров на изоленту.
Да и уж амлоджик, простите, наелся их ещё с Digma.
Есть специализированные SOC для премиум класса. Причём для каждой задачи свои. В т.ч. для NAS.
В роутерах например нафиг не нужен декодер видео, зато нужен человеческий эзернет со всеми оффлоадами и т.д.
И далеко не всё можно навесить внешними модулями. Да и если обвесить то цена будет как у SOC специализированных под это дело. Эт даже если откинуть просто тысячи человекочасов на бесконечный глюкодром потом с этим ужеежом.
Всему своё место и своя задача.
Хочется общего назначения и всё в одном - I7 в безвентиояторном исполнении 2мя портами + радиокарточка в mpci-e.
В общем это всё уже откровенный оффтоп, бессмысленный и беспощадный...
Например то, что придётся скрещивать ужа с ежом, т.е. SOC заточенный под декодирование видео без ускорялок сети, без встроенного радио, ещё и слепливать с радиомодулями других вендоров на изоленту.
Да и уж амлоджик, простите, наелся их ещё с Digma.
Есть специализированные SOC для премиум класса. Причём для каждой задачи свои. В т.ч. для NAS.
В роутерах например нафиг не нужен декодер видео, зато нужен человеческий эзернет со всеми оффлоадами и т.д.
И далеко не всё можно навесить внешними модулями. Да и если обвесить то цена будет как у SOC специализированных под это дело. Эт даже если откинуть просто тысячи человекочасов на бесконечный глюкодром потом с этим ужеежом.
Всему своё место и своя задача.
Хочется общего назначения и всё в одном - I7 в безвентиояторном исполнении 2мя портами + радиокарточка в mpci-e.
В общем это всё уже откровенный оффтоп, бессмысленный и беспощадный...