Nachstehend einige Möglichkeiten bei Fehlermeldungen in der syslog.log wie:
kernel: swapper: page allocation failure. order:3, mode:0x4020
Dieser entsteht auf Grund der Default-Einstellungen von Aria2. So sind z.Bspl. 100 Peers pro aktiver Connection möglich - das verbraucht unheimlich viel Speicher zumal auch noch die kleinen Datenhäppchen verwaltet werden müssen. Da kann es vorkommen, dass der Swap noch nicht soweit ist.
Dann hilft es, den mindestens verfügbaren Speicher höher zu setzen, oder die erlaubten Verbindungen (Peers) zu vermindern.
Für RTN16 ändern sie den Startfile /opt/etc/init.d/S85aria2
Code:
#! /bin/sh
#
# startfile for aria2c, by newbiefan @ wl500g.info
# For Olegs & Ily's FW for Asus Routers
# store this script in /opt/etc/init.d if you've installed optware
# Prgmname=/full_path/Prgmname
prgmname1="/opt/bin/aria2c"
shortname="aria2c"
min_free_mem=16384
#one option
options="--conf-path="
# configfile=/full_path/configfile
configfile="/opt/etc/aria2/aria2.conf"
start() {
# Code here to start the program
logger -t ARIA2C "Starting aria2c daemon "
${prgmname1} ${options}${configfile}
echo $min_free_mem > /proc/sys/vm/min_free_kbytes
sleep 5
return 0
}
stop() {
# Code here to stop the program and check it's dead
if [ -n "`pidof $shortname`" ]; then
logger -t ARIA2C "Shutting down aria2c daemon "
/usr/bin/killall $shortname
sleep 5
fi
return 0
}
##########################start here##########################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
logger -t ARIA2C "$shortname restart, executed from $(whoami)"
stop
sleep 2
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
sleep 1
exit
Das setzt den freien Speicher auf mindestens 16MByte. Seither gibt es auf meinem RTN keine Fehlermeldung mehr. Aber man kann auch nach der Methode der Optimierung vorgehen:
Für Asus-Router mit wenig Speicher:
Ändern sie einfach die Datei /opt/etc/aria2/aria2.conf
Für den WL-500gP habe ich die Anzahl der max-open-Files auf 50 und die max_peers auf 25 gesetzt. Natürlich können sie auch noch mit dem mindestens verfügbaren Speicher etwas spielen, sollte aber auf max. 8MB gesetzt werden.
Code:
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
rpc-user=myuser
rpc-passwd=mypassword
dir=/tmp/mnt/disc0_3/Downloads
log=/opt/var/log/aria2/aria2.log
log-level=warn
enable-dht=true
dht-listen-port=6801
dht-file-path=/opt/var/run/aria2c/aria2c
auto-save-interval=30
#max-concurrent-downloads=5
lowest-speed-limit=1K
max-overall-upload-limit=10K
max-upload-limit=5K
max-overall-download-limit=150K
max-download-limit=40K
bt-max-peers=25
bt-max-open-files=50
bt-request-peer-speed-limit=1K
seed-ratio=1.0
seed-time=1460
event-poll=select
ACHTUNG: Bei einem RTN heissen die Mountpoints für die HDD /tmp/mnt/disca_3/Downloads
Ändern sie die Limits auf ihre Bandbreite. Wenn ihr Internet-Zugang zu träge wird, vermindern sie die Limits anteilsmässig. Obige Zahlen beziehen sich auf einen 2Mbit Zugang. (Dividieren sie durch 9, dann bekommen sie die Bandbreite in Byte)
Weiters bitte myuser und mypassword ändern. In besonders schlimmen Fällen können sie die mx-concurrent-downloads auf kleiner als 5 stellen, speziell bei Geräten mit 16 MB Speicher könnte dies nützlich sein.
Es lohnt sich in jedem Fall das Manual zu lesen und etwas herum zu probieren.
Und noch ein Hinweis: dht-Tables können nicht geschrieben werden solange das Verzeichnis mit dem File nicht angelegt wird.
Code:
mkdir /opt/var/run/aria2c
touch /opt/var/run/aria2c/aria2c
Dann stimmen auch die vorher gelisteten dht Einträge, diese sind auch für den RTN16 gültig.
LG
Newbiefan