LINUX.ORG.RU

Banana Pi: постоянно Load Average больше 1.00 - в чём дело?

 , ,


0

3

Здравствуйте, господа. Имеется Banana Pi. Записал Raspbian_For_BananaPro_v1412.img (не знаю, принципиален ли тот факт, что у меня Banana Pi, а не Banana Pro). Всё вроде бы ничего, но заметил, что top/htop постоянно показывает значение Load Average больше 1.00 (одно ядро процессора постоянно на 100% загружено?). Попробовал прибить nginx, mysql, php-fpm, memcached и что смог ещё — ситуация не изменилась. Грешу на то, что ошибочно поставил Raspbian_For_BananaPro_v1412.img вместо Raspbian_For_BananaPi_v3_1.img. Подскажите, пожалуйста, в чём может быть проблема?

P.S. Загрузку Desktop Environment отключил сразу же после «установки» ОС на MicroSD.


там все прерывания висят на CPU0, попробуй отключить lan, wifi итд

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

Самое удивительное, что как раз и непонятно. Вроде бы, судя по показаниям htop, нагрузки на ядра нет, но, с другой стороны, значение Load Average больше единицы откуда-то берётся...

Скриншот htop

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

попробуй tmp и log в ram перенести, добавь в /etc/fstab :

tmpfs /tmp     tmpfs 0 0
tmpfs /var/log tmpfs 0 0

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

Карточка Transcend 16Gb, 10 Class.

Скорость записи 1Gb данных:
root@lemaker:~# sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 записей считано
1024+0 записей написано скопировано
1073741824 байта (1,1 GB), 86,4361 c, 12,4 MB/c

Скорость чтения 1Gb данных:
root@lemaker:~# dd if=tempfile of=/dev/null bs=1M count=1024 
1024+0 записей считано
1024+0 записей написано скопировано
1073741824 байта (1,1 GB), 58,5564 c, 18,3 MB/c
Sferg
() автор топика
Ответ на: комментарий от Sferg

Sandisk Extreme Pro 8Gb, 10 Class.

Скорость записи 1Gb данных:
# sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 записей получено
1024+0 записей отправлено
1073741824 байта (1,1 GB), 47,2819 c, 22,7 MB/c

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

И если сразу после dd запускаю top/htop, то load average показывает больше 2. Возможно у тебя какой то софт активно в log пишет. Попробуй в tmpfs его перенести как выше сказал.

armbox
()
Ответ на: комментарий от Pinkbyte
root@lemaker:~# cat /proc/interrupts
           CPU0       CPU1
 29:     293024     199974       GIC  arch_timer
 30:          0          0       GIC  arch_timer
 32:          0          0       GIC  axp_mfd
 33:          7          0       GIC  serial
 37:          0          0       GIC  RemoteIR
 39:      73172          0       GIC  sunxi-i2c.0
 40:          0          0       GIC  sunxi-i2c.1
 41:          0          0       GIC  sunxi-i2c.2
 54:          0          0       GIC  timer0
 55:         12          0       GIC  aw_clock_event
 56:          0          0       GIC  sunxi-rtc alarm
 59:          0          0       GIC  dma_irq
 60:          0          0       GIC  sunxi-gpio
 64:      64020          0       GIC  sunxi-mmc
 67:          0          0       GIC  sunxi-mmc
 71:          0          0       GIC  ehci_hcd:usb2
 72:     889080          0       GIC  ehci_hcd:usb4
 76:     807511          0       GIC  sunxi lcd0
 77:          0          0       GIC  sunxi lcd1
 78:          0          0       GIC  g2d
 79:     403747          0       GIC  sunxi scaler0
 80:          0          0       GIC  sunxi scaler1
 88:          0          0       GIC  sw_ahci
 92:          0          0       GIC  ace_dev
 96:          0          0       GIC  ohci_hcd:usb3
 97:          0          0       GIC  ohci_hcd:usb5
101:          0          0       GIC  mali_gp_irq_handlers
102:          0          0       GIC  mali_mmu_irq_handlers
103:          0          0       GIC  mali_pp_irq_handlers
104:          0          0       GIC  mali_mmu_irq_handlers
106:          0          0       GIC  mali_pp_irq_handlers
107:          0          0       GIC  mali_mmu_irq_handlers
117:          5          0       GIC  eth0
120:          0          0       GIC  sunxi-i2c.3
IPI0:          0          0  Timer broadcast interrupts
IPI1:      22181     231797  Rescheduling interrupts
IPI2:          0          0  Function call interrupts
IPI3:         64         43  Single function call interrupts
IPI4:          0          0  CPU stop interrupts
IPI5:          0          0  CPU backtrace
Err:          0
Sferg
() автор топика
Ответ на: комментарий от Sferg

значит карта тормозная, ты тестил с bs=1M, а c bs=4K там наверное вообще жопа

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

Добавил те строчки, что Вы порекомендовали - директории в tmpfs не перемонтировались. Перемонтировались только после того, как я заменил их на эти:

tmpfs  /tmp      tmpfs  defaults,relatime,mode=0777,size=100m  0  0
tmpfs  /var/log  tmpfs  defaults,relatime,mode=0777,size=100m  0  0

Load Average остался без изменений - всё равно больше единицы.

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

а ещё там в ядре раздутая сетка промежуточных частот/напряжений, что полезно для планшетов, а для кубиков и бананов нафик не нужно, мож у тебя девайс работает на пониженной частоте постоянно... поэтому попробуй ещё установить СPU governor в perfomance

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

сразу должно заработать, перезагружать не нужно

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
затем можно помониторить текущую частоту CPU, она не должна будет снижаться
watch -t -n1 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

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

Ещё ничего не менял. Сейчас так:

root@lemaker:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fantasy

root@lemaker:/# cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
fantasy
Sferg
() автор топика
Ответ на: комментарий от Sferg

Ну да, fantasy - это allwinner'овский governor, меняет частоту CPU в зависимости от нагрузки, что то типа стандартных ondemand/interactive.

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

Установил performance для обоих ядер. Команда:

watch -t -n1 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

выводит постоянное значение 912000 в режиме performance. В режиме fantasy было постоянно 720000.

Правда, на Load Average это никак не сказалось... Всё равно больше единицы кажет.

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

узнать минимальную частоту CPU:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
узнать максимальную частоту CPU:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
узнать текущую частоту CPU, если governor не performance, то плавает:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

armbox
()
Ответ на: комментарий от Sferg

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

load average - это количество процессов, которые находятся в активном состоянии (выполняются), стоят в очереди на выполнение или висят в uninterruptible sleep (ждут в ядре окончания операции I/O).

Так вот твой preload, который шарится по диску, и создает тебе этот самый LA о котором ты беспокоишься.

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

твой preload, который шарится по диску, и создает тебе этот самый LA

тож видел этот preload на скрине, но у него там uptime - почти час, он уже должен был закончиться...

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

Ага, щас! Он ведь не только все бинарники и библиотеки поднимает, но после прелинка еще и записывает их :-)

no-dashi ★★★★★
()
Ответ на: комментарий от armbox

У меня была система на флэшке, у которой скорость записи была примерно 10 мегабайт в секунду, так вот там прелинк отрабатывал не менее часа всяко.

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

Ага, щас! Он ведь не только все бинарники и библиотеки поднимает, но после прелинка еще и записывает их

preload и prelink - это разные вещи, preload ничего на диск не пишет... ;)

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

Установил пакет cpufrequtils:

aptitude install cpufrequtils

Создал конфигурационный файл:

touch /etc/default/cpufrequtils

...со следующим содержимым:

# valid values: userspace conservative powersave ondemand performance
# get them from cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
GOVERNOR="performance"

...и перезагрузился. Теперь после перезагрузки частота постоянно максимальная (значение 912000 в /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq).

Скриншот htop сразу же после перезагрузки, Скриншот htop через 20 минут после перезагрузки

Sferg
() автор топика
Ответ на: комментарий от armbox
root@lemaker:~# uname -a
Linux lemaker 3.4.103 #4 SMP PREEMPT Thu Dec 18 12:55:58 CST 2014 armv7l GNU/Linux
Sferg
() автор топика
Ответ на: комментарий от no-dashi

Так вот твой preload, который шарится по диску, и создает тебе этот самый LA о котором ты беспокоишься.

preload я остановил. Скриншот чуточку выше - тот, который спустя 20 минут после перезагрузки. В сообщении для armbox.

Sferg
() автор топика
Ответ на: комментарий от armbox
root@lemaker:~# lsmod
Module                  Size  Used by
cpufreq_stats           5849  0
cpufreq_userspace       3390  0
cpufreq_conservative     5970  0
cpufreq_powersave       1245  0
mali_drm                2608  0
drm                   209226  1 mali_drm
mali                  111427  0
ump                    52415  1 mali
rt5370sta             657137  0
rt2800usb              13480  0
rt2800lib              49001  1 rt2800usb
rt2x00usb              11152  1 rt2800usb
rt2x00lib              41620  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              254106  3 rt2x00lib,rt2x00usb,rt2800lib

Вывод dmesg

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

Попробуй убрать из автозагрузки модули drm/mali_drm/mali/ump - они не нужны, тупо занимают память и всё. Ну и usb wi-fi отключи до кучи.

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

Нет, USB WiFi - единственная возможность подключаться к Интернет через роутер. Сетевушка в Banana Pi, скорее всего, мертва с рождения.

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

а вот модули mali/drm, даж лучше совсем из ядра выкинуть и не компилить их, они не имеют никакого отношения ни к выводу картинки ни к аппаратному(4K) ускорению видео

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

К сожалению, я этого не смогу физически сделать, ибо само устройство находится в другом конце города у приятеля. Я являюсь его представителем и захожу по SSH.

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

А каким образом можно сетевушку отключить (какой модуль ядра выгрузить)? Возможно, она каким-то образом систему грузит. В ifconfig'е она присутствует, однако на подключение кабеля не реагирует:

root@lemaker:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 02:ca:08:02:08:6f
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1160 (1.1 KiB)
          Interrupt:117 Base address:0xc000

Всё равно раз мёртвая, то толку от неё никакого, а вред, вероятно, возможен.

Sferg
() автор топика
Ответ на: комментарий от post-factum

Вот всё, что есть:

root@lemaker:~# aptitude search perf
p   ace-gperf                       - ACE perfect hash function generator
p   cairo-perf-utils                - The Cairo 2D vector graphics library perfo
p   drizzle-plugin-perf-dictionary  - Performance Dictionary for Drizzle
v   drizzle-plugin-performance-dict -
p   globus-xioperf                  - Globus Toolkit - XIO Performance Tool
p   globus-xioperf-dbg              - Globus Toolkit - XIO Performance Tool Debu
p   google-perftools                - command line utilities to analyze the perf
p   gperf                           - Perfect hash function generator
p   gperf-ace                       - ACE perfect hash function generator (trans
p   gtkperf                         - GTK+ performance benchmark
p   httperf                         - An HTTP server performance tester
p   iperf                           - Internet Protocol bandwidth measuring tool
p   libjunitperf-java               - JUnit extensions for performance and scala
p   libjunitperf-java-doc           - Documentation for libjunitperf-java
v   libscamperfile-dev              -
p   libscamperfile0                 - file access library for scamper's binary d
p   libscamperfile0-dev             - development headers for scamper's binary d
p   netperfmeter                    - Network Performance Meter
p   perforate                       - Utilities to save disk space
p   performous                      - karaoke game that allows user supplied son
p   performous-dbg                  - karaoke game that allows user supplied son
p   performous-tools                - karaoke game that allows user supplied son
p   wrapperfactory.app              - Application wrappers configuration tool fo
p   xfce4-diskperf-plugin           - disk performance display plugin for the Xf
Sferg
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.