Das Beschleunigen von Linux ist nur begrenzt möglich.
Wenn man mehrere Platten hat, kann man das OS auf diese verteilen.
Der DMA-Modus lässt sich auf meinen SATA-Platten mit hdparm
nicht einschalten.
hdparm -d1 -X66 /dev/sda
Jedoch ließen sich die Schalter für lookahead(A1),Schreibcache(W1) und AccousticMode(M254) einschalten.
Eintrag in der /etc/init.d/boot.local
:
hdparm -W1 -A1 -M254 /dev/sda hdparm -W1 -A1 -M254 /dev/sdb hdparm -W1 -A1 -M254 /dev/sdc
Beispieleintrag in der /etc/fstab
:
/dev/disk/by-id/..... / ext3 data=writeback,async,noatime,acl,user_xattr,commit=15 0 0
deaktiviere Änderungen an der Zugriffzeit für den Ordner /daten
und verhindere so unnötige Schreibzugriffe auf die Platte:
chattr -R +A /daten
weitere Tools:
iostat 5 -m iostat -x /dev/sda smartctl -A /dev/sda smartctl -s lookahead=on /dev/sda smartctl -s wcache=on /dev/sda
ausführlicher Geschwindigkeitstest ohne OS-Cache und diskpuffer:
hdparm -tT --direct /dev/sda
vergrößere den Readaheadcache um die Festplatte zu beschleunigen:
vorher dreimal die Geschwindigkeit testen:
hdparm -t /dev/sda
dann den aktuellen Cachewert ermitteln:
blockdev --getra /dev/sda blockdev --getfra /dev/sda
dann den Cachewert vergrößern:
blockdev --setra 2048 /dev/sda blockdev --setfra 2048 /dev/sda
dann noch dreimal testen ob es was gebracht hat:
hdparm -t /dev/sda
Startreihenfolge von Diensten ändern:
Beispiel: Starte den avahi-daemon nach dem mailserver exim4:
ändere in der Datei /etc/init.d/.depend.start
den Eintrag:
avahi-daemon: dbus rsyslog
in:
avahi-daemon: dbus rsyslog exim4
Starte xdm vor dem ntp-daemon:
xdm: ntp kbd dbus acpid
in:
xdm: kbd dbus acpid
danach Rechner testweise neustarten.
Dienste wenn möglich parallel starten:
echo CONCURRENCY=shell >>/etc/default/rcS
danach Rechner testweise neustarten.
parallele Komprimierung benutzen
#debian 9 apt-get install pigz lbzip2 pbzip2 pxz #suse 42.3 zypper in pigz lbzip2 pbzip2 pixz ln -s /usr/bin/lbzip2 /usr/local/bin/bzip2 ln -s /usr/bin/lbzip2 /usr/local/bin/bunzip2 ln -s /usr/bin/lbzip2 /usr/local/bin/bzcat ln -s /usr/bin/pigz /usr/local/bin/gzip ln -s /usr/bin/pigz /usr/local/bin/gunzip ln -s /usr/bin/pigz /usr/local/bin/zcat update-alternatives --install /bin/gzip gzip /usr/bin/pigz 100 update-alternatives --install /bin/xz xz /usr/bin/pixz 100 update-alternatives --install /bin/bzip2 bzip2 /usr/bin/lbzip2 100
#debian: ln -s /usr/bin/pxz /usr/local/bin/xz #suse: ln -s /usr/bin/pixz /usr/local/bin/xz export TAR_OPTIONS="--use-compress-program=pigz"
oder das Programm parallel verwenden:
parallel gzip ::: *.log
Tmp-Verzeichnis in den RAM verlagern
cp /usr/share/systemd/tmp.mount /etc/systemd/system/ systemctl enable tmp.mount
Auslagerung auf Festplatte einschränken
echo "vm.swappiness = 10" >>/etc/sysctl.d/swappiness.conf
Inode-Cache vergößern
echo "vm.vfs_cache_pressure=50" >>/etc/sysctl.d/vfs_cache.conf
Speicherverbrauch geordnet anzeigen:
(http://suckup.de/linux/speicherverbrauch-anzeigen-lassen/)
#!/bin/bash /usr/bin/printf "%-6s %-9s %s\n" "PID" "Total" "Command" /usr/bin/printf "%-6s %-9s %s\n" "---" "-----" "-------" for PID in `/bin/ps -e | /usr/bin/awk '$1 ~ /[0-9]+/ { print $1 }'` do CMD=`/bin/ps -o comm -p ${PID} | /usr/bin/tail -1` TOTAL=`/usr/bin/pmap ${PID} 2>/dev/null | /usr/bin/tail -1 | /usr/bin/awk '{ print $1 }'` [ -n "${TOTAL}" ] && /usr/bin/printf "%-6s %-9s %s\n" "${PID}" "${TOTAL}" "${CMD}" done | /usr/bin/sort -n -k2
oder:
ps -e -orss=,args= | sort -nr | head