Page 1 of 4 123 ... LastLast
Results 1 to 15 of 55

Thread: Ошибка "page allocation failure" на прошивках RT-N16-1.9.2.7-rtn

  1. #1

    Exclamation Ошибка "page allocation failure" на прошивках RT-N16-1.9.2.7-rtn

    Коллеги, время от времени на форуме всплывают сообщения об ошибке kernel: swapper: page allocation failure.
    Code:
    Oct  2 23:10:21 kernel: swapper: page allocation failure. order:3, mode:0x4020
    Oct  2 23:10:21 kernel: Call Trace:
    Oct  2 23:10:21 kernel: [<8000de20>] dump_stack+0x8/0x34
    Oct  2 23:10:21 kernel: [<8005914c>] __alloc_pages+0x294/0x344
    Oct  2 23:10:21 kernel: [<80077438>] __slab_alloc+0x1d8/0x4b8
    Oct  2 23:10:21 kernel: [<80077a34>] __kmalloc_track_caller+0x144/0x184
    Oct  2 23:10:21 kernel: [<801a8a30>] __alloc_skb+0x70/0x140
    Oct  2 23:10:21 kernel: [<8020badc>] tcp_collapse+0x214/0x468
    Oct  2 23:10:21 kernel: [<8020be80>] tcp_prune_queue+0x150/0x340
    Oct  2 23:10:21 kernel: [<8020c778>] tcp_data_queue+0x708/0xe10
    Oct  2 23:10:21 kernel: [<8020e594>] tcp_rcv_established+0x224/0xc00
    Oct  2 23:10:21 kernel: [<802167dc>] tcp_v4_do_rcv+0xe8/0x450
    Oct  2 23:10:21 kernel: [<80217598>] tcp_v4_rcv+0xa54/0xb38
    Oct  2 23:10:21 kernel: [<801f5604>] ip_local_deliver+0x1e8/0x318
    Oct  2 23:10:21 kernel: [<801f4810>] ip_rcv_finish+0x1d0/0x464
    Oct  2 23:10:21 kernel: [<801db934>] nf_reinject+0x11c/0x2b8
    Oct  2 23:10:21 kernel: [<c014e1ec>] imq_dev_xmit+0x50/0x60 [imq]
    Oct  2 23:10:21 kernel: [<801c1958>] qdisc_restart1+0xb4/0x21c
    Oct  2 23:10:21 kernel: [<c014e360>] imq_nf_queue+0x164/0x264 [imq]
    Oct  2 23:10:21 kernel: [<801db608>] __nf_queue+0x17c/0x38c
    Oct  2 23:10:21 kernel: [<801dab20>] nf_hook_slow+0xe0/0x160
    Oct  2 23:10:21 kernel: [<801f4d54>] ip_rcv+0x2b0/0x720
    Oct  2 23:10:21 kernel: [<801afaa4>] process_backlog+0xf0/0x220
    Oct  2 23:10:21 kernel: [<801ad1b0>] net_rx_action+0xb4/0x21c
    Oct  2 23:10:21 kernel: [<8002d28c>] __do_softirq+0x88/0x11c
    Oct  2 23:10:21 kernel: [<8002d38c>] do_softirq+0x6c/0x74
    Oct  2 23:10:21 kernel: [<80007614>] plat_irq_dispatch+0x14c/0x1b8
    Oct  2 23:10:21 kernel: [<80007d6c>] ret_from_irq+0x0/0x4
    Oct  2 23:10:21 kernel: [<80009d1c>] cpu_idle+0x1c/0x50
    Oct  2 23:10:21 kernel: [<80328c00>] start_kernel+0x2e8/0x344
    Oct  2 23:10:21 kernel: Mem-info:
    Oct  2 23:10:21 kernel: Normal per-cpu:
    Oct  2 23:10:21 kernel: CPU    0: Hot: hi:   42, btch:   7 usd:   3   Cold: hi:   14, btch:   3 usd:   6
    Oct  2 23:10:21 kernel: Active:14580 inactive:10447 dirty:1524 writeback:0 unstable:0
    Oct  2 23:10:21 kernel:  free:2544 slab:1628 mapped:2695 pagetables:128 bounce:0
    Oct  2 23:10:21 kernel: Normal free:10176kB min:1440kB low:1800kB high:2160kB active:58320kB inactive:41788kB present:130048kB pages_scanned:0 all_unreclaimable? no
    Oct  2 23:10:21 kernel: lowmem_reserve[]: 0
    Oct  2 23:10:21 kernel: Normal: 0*4kB 654*8kB 305*16kB 0*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10176kB
    Oct  2 23:10:21 kernel: Swap cache: add 0, delete 0, find 0/0, race 0+0
    Oct  2 23:10:21 kernel: Free swap  = 0kB
    Oct  2 23:10:21 kernel: Total swap = 0kB
    Oct  2 23:10:21 kernel: Free swap:            0kB
    Oct  2 23:10:21 kernel: 32768 pages of RAM
    Oct  2 23:10:21 kernel: 0 pages of HIGHMEM
    Oct  2 23:10:21 kernel: 1132 reserved pages
    Oct  2 23:10:21 kernel: 22161 pages shared
    Oct  2 23:10:21 kernel: 0 pages swap cached
    Условия возникновения ошибки:
    • прошивка RT-N16-1.9.2.7-rtn-rXXXX,
    • использание роутера для скачивания торрентов,
    • скорость скачивания >~200KB/s.


    Использование свопа от ошибки не избаваляет. При возникновении ошибки ряд скачанных файлов оказываются "битыми". Причём ошибки возникают как при использовании rtorrent, так и при использовании transmission. В момент воспроизведения проблемы роутер не тормозит - ни в WEB-интерфейсе, ни в консоли. Единственное, что можно зафиксировать - это жутко долгое выполнение любой операции, связанной с чтением/записью на диск при скачивании торрентов.

    Число открытых дискрипторов для файловой системы диска:
    Code:
    $ lsof +D /tmp/harddisk/ | wc -l
    287
    Из них открыто на запись:
    Code:
    $ lsof +D /tmp/harddisk/ | grep "w " | wc -l
    2
    Дерево процессов:
    Code:
    $ ps afx
      PID TTY      STAT   TIME COMMAND
        2 ?        S<     0:00 [kthreadd]
        5 ?        S<     0:00  \_ [khelper]
        4 ?        S<     0:00  \_ [events/0]
        3 ?        RN     0:00  \_ [ksoftirqd/0]
       24 ?        S<     0:00  \_ [kblockd/0]
       52 ?        S<     0:00  \_ [kswapd0]
       53 ?        S<     0:00  \_ [aio/0]
       51 ?        S      0:00  \_ [pdflush]
       50 ?        S      0:00  \_ [pdflush]
      105 ?        S<     0:01  \_ [mtdblockd]
      238 ?        S<     0:00  \_ [khubd]
      297 ?        S<     0:00  \_ [scsi_eh_0]
      298 ?        D<     0:00  \_ [usb-storage]
      336 ?        S<     0:05  \_ [kl2tpd/0]
      385 ?        D<     0:00  \_ [kjournald]
        1 ttyS0    Ss+    0:00 /sbin/init
      199 ?        Ss     0:00 syslogd -m 0 -O /tmp/syslog.log -S -D -l 7 -b 1
      202 ?        Ss     0:00 klogd
      205 ?        S      0:00 nas
      209 ?        Ss     0:00 telnetd
      213 ?        S      0:00 dropbear -p 22 -4
      594 ?        Ss     0:00  \_ dropbear -p 22 -4
      595 pts/0    Ss     0:00  |   \_ -sh
      596 pts/0    S+     0:07  |       \_ top
     1270 ?        Ss     0:00  \_ dropbear -p 22 -4
     1362 pts/1    Ss     0:00      \_ -sh
     1660 pts/1    R+     0:00          \_ ps afx
      216 ?        S      0:00 httpd vlan2
      221 ?        S      0:00 dnsmasq
      245 ?        S      0:00 lld2d br0 eth1
      327 ?        Ss     0:00 udhcpc -i vlan2 -p /var/run/udhcpc0.pid -s /tmp/udhcp
      330 ?        S      0:00 l2tpd
      337 ?        S      0:00  \_ pppd sync nodetach noaccomp nobsdcomp nodeflate n
      334 ?        Ss     0:00 watchdog
      366 ?        S      0:00 upnp -D -L br0 -W ppp0
      388 ?        Ss     0:00 /usr/sbin/vsftpd
      390 ?        Ss     0:00 /usr/sbin/nmbd -D
      392 ?        Ss     0:00 /usr/sbin/smbd -D
      404 ?        Ss     0:00 cron
      548 ?        S      0:00 /opt/bin/bash /opt/bin/dlengine
     1662 ?        S      0:00  \_ sleep 30
      559 ?        S<     0:00 lighttpd -f /opt/etc/lighttpd/lighttpd.conf
      560 ?        S<s    0:00  \_ /opt/bin/php-fcgi
      573 ?        S<     0:00      \_ /opt/bin/php-fcgi
      574 ?        S<     0:00      \_ /opt/bin/php-fcgi
      571 ?        S<s    0:00 darkstat -i ppp0 -p 667 --chroot /opt/var/log
      572 ?        S<s    0:00  \_ darkstat -i ppp0 -p 667 --chroot /opt/var/log
      585 ?        S      0:00 transmission-daemon -g /opt/etc/transmission
      586 ?        S      0:00  \_ transmission-daemon -g /opt/etc/transmission
      587 ?        D      0:25      \_ transmission-daemon -g /opt/etc/transmission
      588 ?        S      0:00      \_ transmission-daemon -g /opt/etc/transmission
    Мои догадки: в какой-то момент память RAM лавинообразно заполняется, а swapper не успевает выделить нужный объём памяти на диске. Это видно по приложенному графику: в 21:40 было снято ограничение на скорость скачивания торрента, а в 21:50 посыпались ошибки в syslog'е.

    Если оценить скорость ввода-вывода на диск:
    Code:
    $ dd if=/dev/discs/disca/part1  of=/dev/null count=512K
    524288+0 records in
    524288+0 records out
    268435456 bytes (268 MB) copied, 34,892 s, 7,7 MB/s
    
    $ dd if=/dev/zero  of=/tmp/harddisk/backup/nonsense.swp  count=512K
    524288+0 records in
    524288+0 records out
    268435456 bytes (268 MB) copied, 116,384 s, 2,3 MB/s
    то она окажется меньше, чем пиковая скорость скачивания торрента по графикам rrd.

    Пробовал воспроизвести ситуацию с помощью wget, скачивая с ПК большие файлы, но не смог получить wget'ом скорость скачивания большую, чем максимальная скорость записи на диск. wget оказался умнее меня?

    Линуксоиды, есть мнение, что wget не скачивает быстрее, чем может записать на диск, используя алгоритм "скачал блок - записал блок". А вот торрент-клиенты такой логики лишены. Как мне подтвердить свои догадки?
    Last edited by ryzhov_al; 18-05-2012 at 07:13. Reason: Перенёс картинку на хостинг radikal.ru

  2. #2
    Так же всплывают и ответы

    Надо увеличить /proc/sys/vm/min_free_kbytes...
    У меня 16384, и ошибок нет.

  3. #3
    Спасибо за совет. Настройки по умолчанию:
    Code:
    $ cat /proc/sys/vm/swappiness
    60
    $ cat /proc/sys/vm/min_free_kbytes
    1442
    Увеличил min_free_kbytes до 16384, проверю в работе.

    Однако два вопроса всё равно остались.

    Насколько я для себя выяснил, rtorrent использует memory mapping. Получается, файлы напрямую отображаются в память, а за ввод-вывод на диск отвечают исключительно функции\алгоритмы ядра. Как бы не старался Linux VM, если скорость скачивания заметно превышает скорость записи на диск, то kswapd\pdflush просто не успеют ничего выгрузить на диск. Linux VM мы параметром min_free_kbytes подкрутили, но в случае, описанном постом выше засада всё равно возникнет?

    Почему ошибка page allocation failure у меня никогда не возникала на ядрах 2.4?

  4. #4
    Quote Originally Posted by ryzhov_al View Post
    Почему ошибка page allocation failure у меня никогда не возникала на ядрах 2.4?
    регулярно на 2,4. Правда, на wl500gp1

  5. #5
    Quote Originally Posted by Pablo Escobar View Post
    регулярно на 2,4. Правда, на wl500gp1
    Угу. При упоминании ядра 2.4 имелось в виду устройство wl-500g premium v1 128mb.

  6. #6
    Quote Originally Posted by ryzhov_al View Post
    Угу. При упоминании ядра 2.4 имелось в виду устройство wl-500g premium v1 128mb.
    у меня по симптоматике бывает два варианта:
    - отваливается dropbear, web-морда и интернет;
    - отваливается только dropbear и web-морда.

    Судя по тому, что в три часа ночи туда льется бэкап (NFS), и логи такие же, а с утра в подавляющем полшинстве случаев все работает (битые торренты иногда присутствуют), ваша идея ram-swapper сильно правдоподобна.

  7. #7
    Тоже регулярно вываливается ошибка ядра.
    Роуетер RT-N16, transmission.
    Своп не включал, разве 128 мб памяти мало, чтобы обойтись без свопа?

  8. #8
    Join Date
    May 2009
    Location
    Московская обл., Щелково
    Posts
    27
    похожая ошибка возникает при добавлении торрентов на закачку.
    торрент-клиент - rTorrent
    ну и проблем и тормозов при этом, как бы, никаких не замечено.
    мож так задумано?
    Attached Files Attached Files
    Last edited by nexby; 08-10-2010 at 16:02.

  9. #9
    Join Date
    May 2009
    Location
    Московская обл., Щелково
    Posts
    27
    поправочка:
    ошибка возникает не при добавлении торрентов, а при открытии веб-интерфейса. и далее, при открытом интерфейсе возникновение этой ошибки носит постоянный характер вплоть до закрытия веб-интерфейса.
    Last edited by nexby; 08-10-2010 at 18:31.

  10. #10
    Quote Originally Posted by nexby View Post
    поправочка:
    ошибка возникает не при добавлении торрентов, а при открытии веб-интерфейса. и далее, при открытом интерфейсе возникновение этой ошибки носит постоянный характер вплоть до закрытия веб-интерфейса.
    поддерживаю. причем загрузка 30-70%

  11. #11
    Join Date
    Aug 2008
    Location
    Taganrog, Rostov Region
    Posts
    397
    Quote Originally Posted by ryzhov_al View Post
    Увеличил min_free_kbytes до 16384, проверю в работе.
    А как это делается?
    (В смысле увеличение min_free_kbytes)
    [ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];

  12. #12
    Либо где-нибудь в post-boot
    Code:
    echo 16384 > /proc/sys/vm/min_free_kbytes
    либо через sysctl в стартовых скриптах.
    Last edited by ryzhov_al; 09-10-2010 at 20:01. Reason: spell check: cat -> echo

  13. #13
    Join Date
    Aug 2008
    Location
    Taganrog, Rostov Region
    Posts
    397
    Quote Originally Posted by ryzhov_al View Post
    Либо где-нибудь в post-boot
    Code:
    cat 16384 > /proc/sys/vm/min_free_kbytes
    после перегрузки параметр не изменился.
    А если выполнить это в putty то получаю:
    Code:
    cat 16384 > /proc/sys/vm/min_free_kbytes
    16384: No such file or directory
    Где собака зарыта?
    [ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];

  14. #14
    Join Date
    Aug 2008
    Location
    Taganrog, Rostov Region
    Posts
    397
    Quote Originally Posted by igor77777 View Post
    после перегрузки параметр не изменился.
    А если выполнить это в putty то получаю:
    Code:
    cat 16384 > /proc/sys/vm/min_free_kbytes
    16384: No such file or directory
    Где собака зарыта?
    ага, сам же отвечаю.
    Нужно вставлять в post-boot:
    Code:
    echo 16384 > /proc/sys/vm/min_free_kbytes
    параметр вроде поменялся.
    посмотрю, что будет с ошибками.
    [ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];

  15. #15
    Помогло, указанной ошибки больше нет.
    При скачивании на скорости 2,5МБ/c наблюдаем картину:
    Code:
    top - 00:00:14 up 1 day,  1:32,  0 users,  load average: 3.33, 3.45, 3.53
    Tasks:  52 total,   1 running,  51 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.7%us,  0.7%sy,  0.0%ni,  0.0%id, 97.7%wa,  0.0%hi,  1.0%si,  0.0%st
    Mem:    126544k total,   101812k used,    24732k free,      868k buffers
    Swap:        0k total,        0k used,        0k free,    69620k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    21805 god       16   0  1648  648  500 R  1.3  0.5   0:02.30 top
      337 god       10  -5     0    0    0 S  0.3  0.0   5:26.75 kl2tpd/0
     5008 god       18   0  9024 6536 1756 D  0.3  5.2  17:13.04 transmission-da
        2 god       10  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd
        3 god       34  19     0    0    0 S  0.0  0.0   0:12.55 ksoftirqd/0
       24 god       10  -5     0    0    0 S  0.0  0.0   0:00.42 kblockd/0
       51 god       15   0     0    0    0 S  0.0  0.0   0:01.41 pdflush
        4 god       10  -5     0    0    0 S  0.0  0.0   0:00.07 events/0
       53 god       20  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0
      105 god       10  -5     0    0    0 S  0.0  0.0   0:02.80 mtdblockd
      196 god       15   0  1544  284  232 S  0.0  0.2   0:00.25 syslogd
       52 god       10  -5     0    0    0 S  0.0  0.0   0:02.90 kswapd0
      202 god       15   0  1128  188   96 S  0.0  0.1   0:00.74 nas
        1 god       23   0  1568  616  516 S  0.0  0.5   0:00.58 init
      210 god       15   0  1172  348  276 S  0.0  0.3   0:00.00 dropbear
      213 god       15   0  1196  428  324 S  0.0  0.3   0:01.34 httpd
      218 nobody    15   0   932  420  312 S  0.0  0.3   0:02.91 dnsmasq
    Видно, что 97% времени процессор ожидает завершения I/O-операций. В дальнейшем можно будет поиграться параметрами /proc/sys/vm/* для минимизации wait-времени (пример).
    RAM больше не переполняется:
    Last edited by ryzhov_al; 18-05-2012 at 07:19. Reason: Перенёс картинку на хостинг radikal.ru

Page 1 of 4 123 ... LastLast

Similar Threads

  1. New oleg firmware version
    By Lesiuk in forum WL-500gP Firmware Discussion
    Replies: 713
    Last Post: 13-05-2016, 05:55
  2. Kernel-Mitteilung (alloc_pages...) - was bedeutet das?
    By wolder in forum German Discussion - Deutsch (DE)
    Replies: 6
    Last Post: 13-09-2010, 16:06
  3. Firmware 1.9.2.7 CR9
    By Oleg in forum WL-500g Firmware Releases
    Replies: 53
    Last Post: 13-04-2009, 15:28
  4. my configuration page wont let me log in
    By tuepen in forum WL-700g Q&A
    Replies: 1
    Last Post: 06-08-2008, 04:04

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •