Results 1 to 15 of 55

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

Threaded View

Previous Post Previous Post   Next Post Next Post
  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 06:13. Reason: Перенёс картинку на хостинг radikal.ru

Similar Threads

  1. New oleg firmware version
    By Lesiuk in forum WL-500gP Firmware Discussion
    Replies: 713
    Last Post: 13-05-2016, 04:55
  2. Kernel-Mitteilung (alloc_pages...) - was bedeutet das?
    By wolder in forum German Discussion - Deutsch (DE)
    Replies: 6
    Last Post: 13-09-2010, 15:06
  3. Firmware 1.9.2.7 CR9
    By Oleg in forum WL-500g Firmware Releases
    Replies: 53
    Last Post: 13-04-2009, 14: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, 03: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
  •