# PC ist langsam, wenn ich etwas emerge

## xtrace

Hi,

vielleicht kann mir hier jemand weiterhelfen.

Ich habe neuerdings einige Probleme mit meinem Gentoo System.

Wenn ich etwas emerge (z,B. ein World Update durchführe), ist mein PC langsam. Unter anderem merke ich es daran, dass Youtube Videos ruckeln oder selbst ein Scrollen auf einer Webseite.

Der PC hat 64 Gigabyte Speicher, eine SSD und einen AMD 8ern Prozessor. Daran kann es eigentlich nicht liegen.

Die SSD ist mit EXT4 formatiert welche ich folgendermaßen einbinde:

fstab:

```

/dev/sdb4               /               ext4            discard,relatime,defaults 0 1

```

make.conf:

```

]COMMON_FLAGS="-O2 -march=znver1 -pipe"

CFLAGS="-O2 -march=znver1"

CXXFLAGS="${COMMON_FLAGS}"

FCFLAGS="${COMMON_FLAGS}"

FFLAGS="${COMMON_FLAGS}"

PORTDIR="/usr/portage"

DISTDIR="/usr/portage/distfiles"

PKGDIR="/usr/portage/packages"

MAKEOPTS="-j17"

INPUT_DEVICES="evdev"

VIDEO_CARDS="nouveau"

LC_MESSAGES=C

GRUB_PLATTFORMS="efi-64"

```

Hat hier vielleicht jemand Rat?

Danke vorab!

Cu

----------

## toralf

```
MAKEOPTS="-j17" 
```

ist etwas zu viel: Obwohl in irgendwelchen Foren immer wieder cpu+1 angegeben wird, halte ich selbst cpu-1 für die max. obere Grenze. Setze den Wert bei einem 8-Kerner 10, und Du solltest ein flüssigeres arbeitendes System haben.

----------

## mike155

Bitte poste die Ausgabe von

```
emerge --info
```

Eines schon vorweg: es wird eher davon abgeraten, Dateisysteme mit der Option "discard" zu mounten. Es kann unter bestimmten Umständen (ältere Hardware, SSD-Laufwerk ist im Kernel blacklisted, etc.) zu kurzen Freezes führen. 

Besser ist es, regelmäßig einen fstrim Job laufen zu lassen: von Hand - oder noch besser - automatisch als cron- oder Systemd-Timer-Job.

Rein aus Interesse (hat nichts mit dem geschilderten Problem zu tun): warum hast Du "-pipe" bei den CFLAGS entfernt?

----------

## firefly

 *mike155 wrote:*   

> 
> 
> Eines schon vorweg: es wird eher davon abgeraten, Dateisysteme mit der Option "discard" zu mounten. Es kann unter bestimmten Umständen (ältere Hardware, SSD-Laufwerk ist im Kernel blacklisted, etc.) zu kurzen Freezes führen. 
> 
> 

 

Bitte quelle liefern weil sonst ist das nur eine aussage ohne inhalt. Denn es kann sein, dass der Hintergrund für aktuelle Systeme nicht mehr gilt.

----------

## mike155

 *Firefly wrote:*   

> Bitte quelle liefern weil sonst ist das nur eine aussage ohne inhalt. Denn es kann sein, dass der Hintergrund für aktuelle Systeme nicht mehr gilt.

 

Sehr gerne  :Smile: 

Ein Kommentar von Theodore Ts'o, dem Haupt-Entwickler von ext4: 

 *https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/#post-328912 wrote:*   

> [...] For these two reasons, on Linux the recommended way to use TRIM is to use the fstrim command run out of cron, so that during an idle period the TRIM commands can be issued for all of the unused areas on the disk. Typically once a week is plenty; some people will go every night, or even once a month, since it is very workload dependent. This causes much less of a performance impact on production traffic, and for thin provisioning systems which use a large allocation granularity, it is much more effective. [...]

 

Und eine Empfehlung auf der Arch Linux Seite:

 *https://wiki.archlinux.org/index.php/Solid_state_drive wrote:*   

> Note: Continuous TRIM is NOT the most preferred way to issue TRIM commands among the Linux community. For example, Ubuntu enables periodic TRIM by default [5], Debian does not recommend using continuous TRIM [6] and Red Hat recommends using periodic TRIM over using continuous TRIM if feasible. [7]

 (Hervorhebungen von mir)

----------

## toralf

Rein interessehalber (ich hoffe, ich hijacke den Thread nicht): Ich  benutze seit 5 Jahren eine 250 GB SSD ohne TRIM oder dgl., einfach nur mit BTRFS formatiert:

```
/dev/sda3       /               btrfs           compress=lzo,ssd_spread,noatime         0 0
```

und habe keine Probleme bisher festgestellt.

Wird das TrIm Kommand universell benötigt oder insbesondere für EXT4?

----------

## xtrace

Hallo zusammen,

sorry, dass ich jetzt erst anworte.

Folgend mein Ausgabe von 

emerge --info

```

Portage 2.3.66 (python 3.6.5-final-0, default/linux/amd64/17.0/desktop/plasma, gcc-8.3.0, glibc-2.29-r2, 4.19.27-gentoo-r1 x86_64)

=================================================================

System uname: Linux-4.19.27-gentoo-r1-x86_64-AMD_Ryzen_7_1800X_Eight-Core_Processor-with-gentoo-2.6

KiB Mem:    32864308 total,  30197744 free

KiB Swap:    4194300 total,   4194300 free

Timestamp of repository gentoo: Sat, 13 Jul 2019 05:30:01 +0000

Head commit of repository gentoo: b1a3d3c12b3e8537665ddebca3f0e25363c15179

sh bash 4.4_p23-r1

ld GNU ld (Gentoo 2.32 p2) 2.32.0

app-shells/bash:          4.4_p23-r1::gentoo

dev-java/java-config:     2.2.0-r4::gentoo

dev-lang/perl:            5.28.2-r1::gentoo

dev-lang/python:          2.7.15::gentoo, 3.6.5::gentoo

dev-util/cmake:           3.14.3::gentoo

sys-apps/baselayout:      2.6-r1::gentoo

sys-apps/openrc:          0.41.2::gentoo

sys-apps/sandbox:         2.13::gentoo

sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo

sys-devel/automake:       1.16.1-r1::gentoo

sys-devel/binutils:       2.32-r1::gentoo

sys-devel/gcc:            8.3.0-r1::gentoo

sys-devel/gcc-config:     2.0::gentoo

sys-devel/libtool:        2.4.6-r3::gentoo

sys-devel/make:           4.2.1-r4::gentoo

sys-kernel/linux-headers: 4.14-r1::gentoo (virtual/os-headers)

sys-libs/glibc:           2.29-r2::gentoo

Repositories:

gentoo

    location: /usr/portage

    sync-type: rsync

    sync-uri: rsync://rsync.gentoo.org/gentoo-portage

    priority: -1000

    sync-rsync-verify-max-age: 24

    sync-rsync-extra-opts: 

    sync-rsync-verify-metamanifest: yes

    sync-rsync-verify-jobs: 1

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="@FREE"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -march=znver1"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -march=znver1 -pipe"

DISTDIR="/usr/portage/distfiles"

ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"

FCFLAGS="-O2 -march=znver1 -pipe"

FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

FFLAGS="-O2 -march=znver1 -pipe"

GENTOO_MIRRORS="https://mirror.netcologne.de/gentoo/ rsync://mirror.netcologne.de/gentoo/ https://ftp.halifax.rwth-aachen.de/gentoo/ rsync://ftp.halifax.rwth-aachen.de/gentoo/ https://ftp.fau.de/gentoo rsync://ftp.fau.de/gentoo https://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ rsync://ftp-stud.hs-esslingen.de/gentoo/"

LANG="de_DE.UTF-8"

LC_ALL=""

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j10"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"

PORTAGE_TMPDIR="/var/tmp"

USE="X a52 aac acl acpi activities alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam flac fortran gdbm gif glamor gpm gtk iconv icu ipv6 jpeg kde kipi kwallet lcms ldap libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses nls nptl nvidia ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qml qt5 readline sdl seccomp semantic-desktop spell ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis widgets wxwidgets x264 xattr xcb xcomposite xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="de" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

Ich habe das System vor ein paar Tagen installiert. Leider läuft es bisher überhaupt nicht rund. 

@mike155 Ich hatte -pipe schlicht und ergreifend vergessen  :Smile:  Habe ich direkt mal nachgeholt.

----------

## mike155

 *toralf wrote:*   

> Wird das Trim Kommand universell benötigt oder insbesondere für EXT4?

 

Meiner Kenntnis nach ist continous oder periodic DISCARD/TRIM bei allen Dateisystemen sinnvoll. Es verhindert, dass volle Platten beim Schreiben (deutlich) langsamer werden und es erhöht die Lebensdauer der SSD. Es ist wohl weniger wichtig, wenn man einen Teil der Platte als "spare space" nicht partitioniert - aber auch dann würde ich fstrim wöchentlich laufen lassen: Warum soll man die Arbeit der SSD nicht einfacher machen, indem man ihr sagt, welche Dateisystem-Blöcke nicht mehr benötigt werden?

Speziell für BTRFS: schau mal auf folgende Seite:

 *https://btrfs.wiki.kernel.org/index.php/FAQ#Is_Btrfs_optimized_for_SSD.3F wrote:*   

> Is Btrfs optimized for SSD?
> 
> There are some optimizations for SSD drives, and you can enable them by mounting with -o ssd. As of 2.6.31-rc1, this mount option will be enabled if Btrfs is able to detect non-rotating storage.
> 
> Note that before 4.14 the ssd mount option has a negative impact on usability and lifetime of modern SSDs which have a FTL (Flash Translation Layer). See the ssd section in Gotchas for more information.
> ...

 

----------

## mike155

 *xtrace wrote:*   

> Ich habe das System vor ein paar Tagen installiert. Leider läuft es bisher überhaupt nicht rund.

 

Erst einmal Glückwunsch zu Deinem neuen System. Keine Bange - das wird schon werden...  :Smile: 

'emerge --info' zeigt, dass Du einen AMD Ryzen 7 1800X mit 8 Kernen hast. Falls Hyperthreading (HT/SMT) aktiviert ist, hast Du zusätzliche 8 HT-Kerne. Ist HT aktiv? Vermutlich hattest Du deshalb auch zuerst "-j17". Bitte bleibe erst einmal bei "-j 10", bis die Ruckler gelöst sind.

Emerge --info zeigt 32 GB Ram. Du schriebst oben: 64 GB. War das ein Fehler? Oder erkennt Linux Teile des RAMs nicht?

Die Variable CPU_FLAGS_X86 stimmt noch nicht. Lass 

```
cpuid2cpuflags
```

 laufen und setze CPU_FLAGS_X86 entsprechend. Siehe: https://wiki.gentoo.org/wiki/CPU_FLAGS_X86

Ansonsten sieht "emerge --info" ganz brauchbar aus. Profil 17.0 wundert mich - bekommt man bei Neu-Installationen mittlerweile nicht gleich 17.1? Aber das ist sicherlich nicht der Grund für die Ruckler.

Als Kernel wird 4.19.27 angezeigt. 4.19 ist eine gute Wahl, aber Sub-Version 27 ist etwas... veraltet. Hast Du es schon mit einem neueren 4.19-Kernel probiert?

Bitte poste Deine Kernel .config Datei mit wgetpaste

Bitte poste die Ausgabe von 

```
dmesg
```

mit wgetpaste

Bitte poste auch die Ausgabe von 

```
df -k
```

Wann und wie tritt das Ruckeln auf? Gibt es eine emerge-Anweisung, mit der Du es sauber reproduzieren kannst (z.B. "emerge --oneshot gcc")? Tritt das Ruckeln dann immer auf? Oder nur manchmal? Bitte beschreibe möglichst gut was passiert und wann es passiert.

Hast Du eigentlich eine komplette Neu-Installation mit einem neuen Stage3 tarball gemacht? Wenn ja: welches hast Du genommen? Oder hast Du Dein altes System kopiert? Hast Du danach ein ein "emerge -e @world" durchgeführt?

----------

## xtrace

 *mike155 wrote:*   

>  *xtrace wrote:*   Ich habe das System vor ein paar Tagen installiert. Leider läuft es bisher überhaupt nicht rund. 
> 
> Erst einmal Glückwunsch zu Deinem neuen System. Keine Bange - das wird schon werden... 
> 
> 'emerge --info' zeigt, dass Du einen AMD Ryzen 7 1800X mit 8 Kernen hast. Falls Hyperthreading (HT/SMT) aktiviert ist, hast Du zusätzliche 8 HT-Kerne. Ist HT aktiv? Vermutlich hattest Du deshalb auch zuerst "-j17". Bitte bleibe erst einmal bei "-j 10", bis die Ruckler gelöst sind.
> ...

 

1. Die Umstellung auf -j10 scheint eine Verbesserung gebracht zu haben. Trotzdem dauert ein emerge Vorgang noch gefühlt zu lange und das System ist langsam. SMT steht im UEFI auf "auto". Ansosnten steht nur DISABLE zur Verfügung.

2. Ich hatte schnelleren RAM hier, welchen ich nun eingesetzt habe. Allerdings auf Kosten der Größe. Scheint aber gefühlt trotzdem besser zu sein!?

3. 

```
 CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3"
```

 Sind nuin die neuen CPU_FLAGS_X86 bei mir.

4. Ich werde das Update heute oder bis Dienstag durchführen.

5. Ich werde das Update heute oder bis Dienstag durchführen.

6. Folgend die Kernel .config mit http://dpaste.com/21DVT1E

7. Folgend die dmesg Ausgabe mit http://dpaste.com/04Q6179

8. df -k:

```

         Dateisystem    1K-Blöcke  Benutzt Verfügbar Verw% Eingehängt auf

/dev/root      109058316 20764391  82645212   21% /

devtmpfs           10240        0     10240    0% /dev

tmpfs            3286412     1452   3284960    1% /run

cgroup_root        10240        0     10240    0% /sys/fs/cgroup

shm             16432056    44288  16387768    1% /dev/shm

tmpfs           12582912        0  12582912    0% /var/tmp/portage

tmpfs           12582912       12  12582900    1% /tmp
```

9. Das Ruckeln tritt sporadisch auf. Allerdings fällt mir auf, dass laut LED die Festplatte dauerhaft arbeitet.

10. Ich hab eine komplette Neuinstallation mit Stage3 tarball gemacht.

Vielen Dank.

----------

## firefly

Um was für eine SSD handelt es sich denn?

Nicht das es sich um eine SSD handelt, deren Schreibperformance einbricht wenn eine gewisse Anzahl an geschriebenen Bytes erreicht sind (in einer relativ kurzen zeit)

Ansonsten ist die Performance der Ryzen, wenn speicherintensive Programme laufen, stark abhängig vom verwendeten RAM (Mit welcher Taktfrequenz der RAM angesteuert werden kann).

Siehe auch folgende Tests: https://www.phoronix.com/scan.php?page=article&item=ryzen-ddr4-bios&num=1

Bei der Menge an RAM die zur Verfügung steht, wäre es zu überlegen ob es nicht sinnvoll wäre das portage temp verzeichnis in eine RAM-Disk zu verlagern. Dadurch wird dann beim kompilieren von Paketen die SSD nicht beansprucht.

https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs

----------

## toralf

 *firefly wrote:*   

> Bei der Menge an RAM die zur Verfügung steht, wäre es zu überlegen ob es nicht sinnvoll wäre das portage temp verzeichnis in eine RAM-Disk zu verlagern. Dadurch wird dann beim kompilieren von Paketen die SSD nicht beansprucht.
> 
> https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs

 Würde ich auf jeden Fall machen, selbst hier bei nur 12 GB RAM funktioniert dies hier seit 4 Jahren bei meinem i5 Desktop:

```
tmpfs           /var/tmp/portage  tmpfs         size=9G,noatime
```

----------

## xtrace

 *toralf wrote:*   

>  *firefly wrote:*   Bei der Menge an RAM die zur Verfügung steht, wäre es zu überlegen ob es nicht sinnvoll wäre das portage temp verzeichnis in eine RAM-Disk zu verlagern. Dadurch wird dann beim kompilieren von Paketen die SSD nicht beansprucht.
> 
> https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs Würde ich auf jeden Fall machen, selbst hier bei nur 12 GB RAM funktioniert dies hier seit 4 Jahren bei meinem i5 Desktop:
> 
> ```
> ...

 

Ich habe das komplette /var/tmp/ Verzeichnis in den RAM verlegt (12 GB).

Es handelt sich um eine Corsair Force 3 SSD (120 GB).

----------

## xtrace

 *firefly wrote:*   

> Um was für eine SSD handelt es sich denn?
> 
> Nicht das es sich um eine SSD handelt, deren Schreibperformance einbricht wenn eine gewisse Anzahl an geschriebenen Bytes erreicht sind (in einer relativ kurzen zeit)
> 
> Ansonsten ist die Performance der Ryzen, wenn speicherintensive Programme laufen, stark abhängig vom verwendeten RAM (Mit welcher Taktfrequenz der RAM angesteuert werden kann).
> ...

 

Laut glances liegt die CPU Auslastung während eines emerges bei höchstens 72 %. Die RAM Auslastung liegt bei höchstens 28 Prozent. Der RAM ist mit 2933 Mhz getaktet.

----------

## toralf

 *xtrace wrote:*   

> Ich habe das komplette /var/tmp/ Verzeichnis in den RAM verlegt (12 GB).

 Oh, bitte nicht.

Es ist ok (und das habe ich auch so bei mir), /tmp als tmpfs zu mounten. Aber /var/tmp ist lt. https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard etwas, was einen Reboot überdauern soll.

----------

## xtrace

 *toralf wrote:*   

>  *xtrace wrote:*   Ich habe das komplette /var/tmp/ Verzeichnis in den RAM verlegt (12 GB). Oh, bitte nicht.
> 
> Es ist ok (und das habe ich auch so bei mir), /tmp als tmpfs zu mounten. Aber /var/tmp ist lt. https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard etwas, was einen Reboot überdauern soll.

 

Ich habe es nun folgendermaßen in der fstab eingetragen:

```

tmpfs                   /var/tmp/portage        tmpfs           size=12G,uid=portage,gid=portage,mode=775,noatime       0 0

```

EDIT: 

Folgendes konnte ich nun während eines emerge Vorgangs feststellen:

```

2019-07-14 13:27:48 (0:00:18) - CRITICAL on CPU_IOWAIT (Min:8.3 Mean:10.3 Max:13.1): chrome, chrome, kwin_x11

2019-07-14 13:27:18 (0:00:27) - CRITICAL on CPU_IOWAIT (Min:8.9 Mean:11.1 Max:14.3): chrome, chrome, kwin_x11

```

----------

## mike155

Vielen Dank für die Daten!

dmesg sieht gut aus - allerdings zeigt es vier ATA/SCSI Devices. 

Sehe ich es richtig, dass Linux auf einer alten Corsair Force 3 von 2011 installiert ist (root=/dev/sdb4)? Wäre es nicht besser, Linux auf der deutlich neueren Samsung 860 EVO zu installieren?

Ich vermute, dass die Ruckler mit der SSD zusammenhängen. Entweder ist sie zu alt und wurde schon zu häufig beschrieben - oder sie ist langsam, weil discard/trim nicht funktionieren - und die Platte bei Schreibvorgängen verzweifelt Daten hin- und herkopiert, um leere Blöcke bereitstellen zu können.

Dazu passt Deine Beobachtung, dass die HDD LED an ist, wenn es Ruckler gibt.

Bitte poste die Ausgabe von:

```
smartctl -a /dev/sdb
```

Bitte poste die Ausgabe von:

```
cd /

fstrim -v .
```

Bitte poste die Ausgabe von:

```
fdisk -l /dev/sdb
```

In der Kernel Config fehlen noch ein paar Optionen, die unter https://wiki.gentoo.org/wiki/Ryzen empfohlen werden. Ich bin kein Ryzen-Experte und weiß nicht, ob man diese braucht - Du kannst es ja noch einmal abgleichen.

/var/tmp/portage als tmpfs zu mounten, ist eine gute Idee! Ich mache das auch. Aber es löst natürlich nicht die Probleme mit Deiner SSD (falls es dort welche gibt - aber es sieht so aus). 

----------

## xtrace

 *mike155 wrote:*   

> Vielen Dank für die Daten!
> 
> dmesg sieht gut aus - allerdings zeigt es vier ATA/SCSI Devices. 
> 
> Sehe ich es richtig, dass Linux auf einer alten Corsair Force 3 von 2011 installiert ist (root=/dev/sdb4)? Wäre es nicht besser, Linux auf der deutlich neueren Samsung 860 EVO zu installieren?
> ...

 

1. Ja, korrekt. Ich wollte die vorhandenen Platten erstmal nicht löschen. Werde ich mir aber nochmal überlegen

2. Kommt auf jeden Fall hin :-/

3. Den Befehl gibt es bei mir nicht. Smartmontools kann ich aufgrund des mailutils nicht installieren. Das bleibt während der Installation stehen und es geht nicht weiter

4.  

```
fstrim -v .

.: 79,7 GiB (85585924096 Bytes) getrimmt

```

5. fdisk -l /dev/sdb/

```
 Festplatte /dev/sdb: 111,8 GiB, 120034123776 Bytes, 234441648 Sektoren

Festplattenmodell: Corsair Force 3 

Einheiten: Sektoren von 1 * 512 = 512 Bytes

Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes

E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes

Festplattenbezeichnungstyp: gpt

Festplattenbezeichner: xxxxxxxxxxxxxxxxxxxxxxx

Gerät       Anfang      Ende  Sektoren  Größe Typ

/dev/sdb1     2048      6143      4096     2M BIOS boot

/dev/sdb2     6144    268287    262144   128M EFI-System

/dev/sdb3   268288   8656895   8388608     4G Linux Swap

/dev/sdb4  8656896 234441614 225784719 107,7G Linux-Dateisystem

```

Ich habe den Kernel und das Profil nun auf den neusten Stand gebracht. Allerdings kann ich keine nvidia Treiber mehr nutzen. Ich bin gezwungen Nouveau zu nehmen. Nvidia kann keine passenden Screens finden. Ich habe daraufhin die xorg.conf mit nvidia-xconfig neu erstellt. Leider funktioniert auch diese nicht. Laut log Datei soll ich den Kernel überprüfen. Der ist aber korrekt und nach nvidia Gentoo Guide erstellt. Ich bleibe nun erstmal bei Nouveau.Last edited by xtrace on Mon Jul 15, 2019 3:10 pm; edited 1 time in total

----------

## mike155

 *Quote:*   

> Smartmontools kann ich aufgrund des mailutils nicht installieren. Das bleibt während der Installation stehen und es geht nicht weiter

 

Verstehe ich nicht... Aber bitte probiere mal

```
USE="-daemon" emerge smartmontools
```

Die Ausgabe der SMART-Parameter wäre wirklich interessant - vorausgesetzt natürlich, dass die SSD auch Daten zur Anzahl der geschriebenen Blöcke, zum Wear Leveling und zu Fehlern herausrückt...

Bei meiner gut funktionierenden Samsung SSD 840 PRO sieht das beispielsweise folgendermaßen aus:

```
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0

  9 Power_On_Hours          0x0032   088   088   000    Old_age   Always       -       55405

 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       68

177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       30

179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0

181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0

182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0

183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0

187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       0

190 Airflow_Temperature_Cel 0x0032   071   060   000    Old_age   Always       -       29

195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always       -       0

199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0

235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       24

241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       3922704415

```

Noch eins: Seriennummern bitte vor dem Posten entfernen

----------

## xtrace

 *mike155 wrote:*   

>  *Quote:*   Smartmontools kann ich aufgrund des mailutils nicht installieren. Das bleibt während der Installation stehen und es geht nicht weiter 
> 
> Verstehe ich nicht... Aber bitte probiere mal
> 
> ```
> ...

 

Hier mal meine Ausgabe:

smartctl -a /dev/sdb

```

smartctl 7.0 2018-12-30 r4883 [x86_64-linux-4.19.57-gentoo] (local build)

Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===

Model Family:     SandForce Driven SSDs

Device Model:     Corsair Force 3 SSD

Serial Number:    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

LU WWN Device Id: 0 000000 000000000

Firmware Version: 1.3.3

User Capacity:    120.034.123.776 bytes [120 GB]

Sector Size:      512 bytes logical/physical

Rotation Rate:    Solid State Device

Device is:        In smartctl database [for details use: -P show]

ATA Version is:   ATA8-ACS, ACS-2 T13/2015-D revision 3

SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)

Local Time is:    Mon Jul 15 19:01:23 2019 CEST

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

General SMART Values:

Offline data collection status:  (0x00) Offline data collection activity

                                        was never started.

                                        Auto Offline Data Collection: Disabled.

Self-test execution status:      (   0) The previous self-test routine completed

                                        without error or no self-test has ever 

                                        been run.

Total time to complete Offline 

data collection:                ( 2097) seconds.

Offline data collection

capabilities:                    (0x7f) SMART execute Offline immediate.

                                        Auto Offline data collection on/off support.

                                        Abort Offline collection upon new

                                        command.

                                        Offline surface scan supported.

                                        Self-test supported.

                                        Conveyance Self-test supported.

                                        Selective Self-test supported.

SMART capabilities:            (0x0003) Saves SMART data before entering

                                        power-saving mode.

                                        Supports SMART auto save timer.

Error logging capability:        (0x01) Error logging supported.

                                        General Purpose Logging supported.

Short self-test routine 

recommended polling time:        (   1) minutes.

Extended self-test routine

recommended polling time:        (  48) minutes.

Conveyance self-test routine

recommended polling time:        (   2) minutes.

SCT capabilities:              (0x0021) SCT Status supported.

                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate     0x000f   120   120   050    Pre-fail  Always       -       0/0

  5 Retired_Block_Count     0x0033   100   100   003    Pre-fail  Always       -       0

  9 Power_On_Hours_and_Msec 0x0032   085   085   000    Old_age   Always       -       13838h+53m+20.980s

 12 Power_Cycle_Count       0x0032   096   096   000    Old_age   Always       -       4620

171 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0

172 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0

174 Unexpect_Power_Loss_Ct  0x0030   000   000   000    Old_age   Offline      -       69

177 Wear_Range_Delta        0x0000   000   000   000    Old_age   Offline      -       4

181 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0

182 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0

187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0

194 Temperature_Celsius     0x0022   030   030   000    Old_age   Always       -       30 (Min/Max 30/30)

195 ECC_Uncorr_Error_Count  0x001c   100   100   000    Old_age   Offline      -       0/0

196 Reallocated_Event_Count 0x0033   100   100   003    Pre-fail  Always       -       0

201 Unc_Soft_Read_Err_Rate  0x001c   100   100   000    Old_age   Offline      -       0/0

204 Soft_ECC_Correct_Rate   0x001c   100   100   000    Old_age   Offline      -       0/0

230 Life_Curve_Status       0x0013   100   100   000    Pre-fail  Always       -       100

231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0

233 SandForce_Internal      0x0000   000   000   000    Old_age   Offline      -       7673

234 SandForce_Internal      0x0032   000   000   000    Old_age   Always       -       8105

241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always       -       8105

242 Lifetime_Reads_GiB      0x0032   000   000   000    Old_age   Always       -       12271

SMART Error Log not supported

SMART Self-test Log not supported

SMART Selective self-test log data structure revision number 1

 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS

    1        0        0  Not_testing

    2        0        0  Not_testing

    3        0        0  Not_testing

    4        0        0  Not_testing

    5        0        0  Not_testing

Selective self-test flags (0x0):

  After scanning selected spans, do NOT read-scan remainder of disk.

If Selective self-test is pending on power-up, resume after 0 minute delay.

```

----------

## mike155

Die SMART-Daten deuten nicht darauf hin, dass es ein Problem mit der SSD gibt. Sie ist zwar alt und wurde häufig ein- und ausgeschaltet - aber 8 TB geschriebene Daten sind nicht übermäßig viel.

Das Alignment der Partitionen (vorheriger Post) sieht auch gut aus.

Treten die Ruckler denn noch auf? Oder ist das Problem mit dem neuen Kernel und nach dem händischen Ausführen von fstrim gelöst?

----------

## xtrace

 *mike155 wrote:*   

> Die SMART-Daten deuten nicht darauf hin, dass es ein Problem mit der SSD gibt. Sie ist zwar alt und wurde häufig ein- und ausgeschaltet - aber 8 TB geschriebene Daten sind nicht übermäßig viel.
> 
> Das Alignment der Partitionen (vorheriger Post) sieht auch gut aus.
> 
> Treten die Ruckler denn noch auf? Oder ist das Problem mit dem neuen Kernel und nach dem händischen Ausführen von fstrim gelöst?

 

Es ist deutlich besser geworden. Trotzdem kann ich beispielsweise keine zwei emerge Vorgänge laufen und gleichzeitig ein Video abspielen lassen.

Das Video "ruckelt" dann sporadisch. Zudem reagiert Chrome / Firefox sporadisch mit ca. 3-5 Sekunden Verzögerung (z.B. Tab schließen durch das Klicken auf das "X").

----------

## Maf

Pack mal 

```
PORTAGE_NICENESS="19"
```

 in deine /etc/make.conf.

Mich wundert, dass es noch keiner vorgeschlagen hat...

----------

## michael_w

 *Maf wrote:*   

> Pack mal 
> 
> ```
> PORTAGE_NICENESS="19"
> ```
> ...

 

genau daran habe ich auch gerade gedacht, als ich den Thread gelesen habe. Steht bei mir seit langer Zeit drin, seither keine "Aussetzer" mehr.

----------

## mike155

 *Quote:*   

> Mich wundert, dass es noch keiner vorgeschlagen hat...

 

Im Einzelfall kann das Setzen von PORTAGE_NICENESS etwas bringen. In den meisten Fällen wird es jedoch nicht helfen. Stattdessen kleistert es das Problem nur zu, so dass es weniger auffällt.

Wenn die "Aussetzer" dadurch zustande kommen, dass zu viel Last auf den I/O Kanälen ist (z.B. weil das System am Swappen  ist oder einfach sehr viele Daten gelesen oder geschrieben werden), bringt das Ändern der "scheduling priority" nichts. Die richtige Lösung wäre, die I/O-Last zu reduzieren, z.B. indem man das Swappen unterbindet (beispielsweise durch mehr RAM oder weniger emerge-Jobs) oder die I/O-Last auf mehrere Platten verteilt.

Wenn die "Aussetzer" dadurch zustande kommen, dass die CPU-Last zu hoch ist, kann das Setzen von PORTAGE_NICENESS helfen. Aber auch hier gibt es eine viel bessere Lösung:  Reduzierung der CPU-Last! Beispielsweise dadurch, dass man auf einer 8 Kern CPU nicht mit "-j 17" arbeitet, sondern mit "-j 8 " oder "-j 9". Dadurch sinkt dann auch der RAM-Bedarf und Swapping wird vermieden.

Zusammenfassung: Performance-Probleme sollten nicht mit PORTAGE_NICENESS zugekleistert werden, sondern man sollte nach der Ursache suchen und das eigentliche Problem lösen.

----------

## Maf

 *mike155 wrote:*   

>  *Quote:*   Mich wundert, dass es noch keiner vorgeschlagen hat... 
> 
> Im Einzelfall kann das Setzen von PORTAGE_NICENESS etwas bringen. In den meisten Fällen wird es jedoch nicht helfen. Stattdessen kleistert es das Problem nur zu, so dass es weniger auffällt.
> 
> Wenn die "Aussetzer" dadurch zustande kommen, dass zu viel Last auf den I/O Kanälen ist (z.B. weil das System am Swappen  ist oder einfach sehr viele Daten gelesen oder geschrieben werden), bringt das Ändern der "scheduling priority" nichts. Die richtige Lösung wäre, die I/O-Last zu reduzieren, z.B. indem man das Swappen unterbindet (beispielsweise durch mehr RAM oder weniger emerge-Jobs) oder die I/O-Last auf mehrere Platten verteilt.
> ...

 

Du hast prinzipiell Recht. Aber:

 *Quote:*   

> Unter anderem merke ich es daran, dass Youtube Videos ruckeln oder selbst ein Scrollen auf einer Webseite.

 

Das sind keine IO-lastige Aktivitäten und deswegen soll es schon helfen.

Ich benutze diese Property selbst, zusammen mit "-j9" auf einem nicht mehr so frischen i7 2600k und bekomme solche Probleme niemals wenn ich grad mit emerge baue.

----------

## mike155

 *Maf wrote:*   

> Ich benutze diese Property selbst, zusammen mit "-j9" auf einem nicht mehr so frischen i7 2600k und bekomme solche Probleme niemals wenn ich grad mit emerge baue.

 

Genau das "-j 9" ist das Problem! Der i7 2600 hat 4 Kerne. Deshalb wäre "-j4" oder "-j 5" richtig.

Was passiert also? Dadurch, dass Du mit "-j9" startest und dann auch noch einen Video Prozess, hast Du 10 Prozesse, die sich um die CPU prügeln. Deshalb bekommt jeder Prozess nur ca. 40% der CPU-Zeit und deswegen gibt es dann die Aussetzer. Wenn Du dann den emerge Jobs mit PORTAGE_NICENESS weniger als die 40% der CPU-Zeit gibst, erhält Dein Video-Prozess natürlich mehr als die 40% und die Aussetzer verschwinden.

Aber das ist doch Irrsinn! Und genau das, was ich mit "zukleistern" bezeichne. Die richtige Lösung wäre: gehe mit den "-j 9" runter auf "-j 4" oder "-j 5" Dein emerge wird dadurch nicht langsamer und Dein Video-Prozess wird auch laufen, ohne dass Du PORTAGE_NICENESS setzen musst.

----------

## Maf

 *mike155 wrote:*   

>  *Maf wrote:*   Ich benutze diese Property selbst, zusammen mit "-j9" auf einem nicht mehr so frischen i7 2600k und bekomme solche Probleme niemals wenn ich grad mit emerge baue. 
> 
> Genau das "-j 9" ist das Problem! Der i7 2600 hat 4 Kerne. Deshalb wäre "-j4" oder "-j 5" richtig.
> 
> Was passiert also? Dadurch, dass Du mit "-j9" startest und dann auch noch einen Video Prozess, hast Du 10 Prozesse, die sich um die CPU prügeln. Deshalb bekommt jeder Prozess nur ca. 40% der CPU-Zeit und deswegen gibt es dann die Aussetzer. Wenn Du dann den emerge Jobs mit PORTAGE_NICENESS weniger als die 40% der CPU-Zeit gibst, erhält Dein Video-Prozess natürlich mehr als die 40% und die Aussetzer verschwinden.
> ...

 

Ich benutze "-j9" wegen HT - ist ein marginaler Unterschied, aber immer hin. Und es ist kein Irrsinn - es funktioniert ja wie erwartet und der Browse-Prozess bekommt mehr CPU-Zeit wenn notwending. Works for me ¯\_(ツ)_/¯

----------

## xtrace

Hallo zusammen,

zunächst einmal ein dickes SORRY das ich mich jetzt erst melde.

Ich war beruflich unterwegs und komme erst jetzt dazu. Inzwischen läuft das System wie gewünscht (sogar mit -j17)..... Warum? Ich weiß es nicht....

Ich werde das mal weiter beobachten....

----------

