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 ★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.