ой ... да , надо было глянуть.
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.
многомегабайтный - это сколько? для 7МПикс камеры это 3-4МБ jpeg
а ОС фотоаппарата можно рассматривать практически как standalone. соответственно когда снимок пишется на карточку, фот не реагирует на кнопки и не показывает ничего на экране.
низкая пропускная способность тракта записи из буфера памяти до сектора в карточке может быть по многим причинам. начиная от скорострельности самой карточки, через кривой драйвер, неполностью запрограмирован контроллер SD/MMC в АРМ, частота тактовой это контроллера, наличие/отсутствие ДМА и тыпы
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.
многомегабайтный - это сколько? для 7МПикс камеры это 3-4МБ jpeg
а ОС фотоаппарата можно рассматривать практически как standalone. соответственно когда снимок пишется на карточку, фот не реагирует на кнопки и не показывает ничего на экране.
ну во-первых для моей 10px камеры скорость серийной съемки 1.4 кадра/сек, то есть запись идет со скоростью где-то 5-7 Мб/сек, во-вторых 3-4 Мб - это JPG, то есть из этих 0.7сек еще сколько-то занимает (пусть и аппаратное) сжатие снимка, так что скорость еще выше
Покажите вывод команды (выполнить в корне исходников ядра)
# grep "CONFIG_DEFAULT_IOSCHED" .config
CONFIG_DEFAULT_IOSCHED="noop"
как понимаю - этот планировщик для меня наилучший, т.к. наиболее важна скорость записи
Круто. Чего же вы хотели с таким планировщиком ? Пробуйте с cfq или deadline.
[*] Enable the block layer ---> IO Schedulers ---> Default I/O scheduler (CFQ) ---> (X) CFQ
Еще смотрите
General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLUB (Unqueued Allocator)
или
(X) SLAB
И тут
Kernel Features ---> [*] Preemptible Kernel
если ядро не древнее - там оно будет
Круто. Чего же вы хотели с таким планировщиком ? Пробуйте с cfq или deadline.
дедлайн мне никак нельзя - он устанавливает наибольший приоритет операциям чтения, а мне нужно именно чтобы приоритет имела запись над чтением.
cfq конечно попробовать можно- но мне думается он дст больше непредсказуемости задержек, нежели ускорения операций. CFQ дает выигрыш когда выполняется много задач (процесоов) обращающихся к носителю с переменным временем доступа (типа винчестера)- тогда оптимизация множества запросов действительно ускоряет получение/сохранение данных В моем же случае есть фактически одна активная программа, а носитель- SD-карта, где время доступа к различным секторам одинаково.
так что noop конечно ничего не оптимизирует (а собственно и не надо - и запись и чтение идут линейно), зато все предсказуемо.
Еще смотрите
General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLUB (Unqueued Allocator)
или
(X) SLAB
И тут
Kernel Features ---> [*] Preemptible Kernel
если ядро не древнее - там оно будет
первую опцию посмотрю, а по поводу пользы от второй сомневаюсь по отзывам ее включение делает систему более "отзывчивой", но снижает производительность)