# prestazioni deludenti, problema di configurazione?

## luna80

ho appena cambiato portatile, un lenovo thinkpad p14s 2° generazione

qui trovate tutte le caratteristiche https://www.digitec.ch/it/s1/product/lenovo-thinkpad-p14s-gen-2-14-intel-core-i7-1165g7-32-gb-1000-gb-notebook-16206313

ho installato gentoo e funziona tutto bene, tranne che le prestazioni di compilazione sono veramente deludenti, per dire, ad esempio...l'emerge di libreoffice impiega più di 3 ore, va bene che è un grosso pacchetto ma il vecchio portatille ci metteva molto di meno

vi posto il mio emerge --info, e il mio config del kernel, se vi serve altro fatemi sapere

```

Portage 3.0.30 (python 3.9.9-final-0, default/linux/amd64/17.1/desktop/gnome/systemd, gcc-11.2.0, glibc-2.33-r7, 5.15.23-gentoo x86_64)

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

System uname: Linux-5.15.23-gentoo-x86_64-11th_Gen_Intel-R-_Core-TM-_i7-1165G7_@_2.80GHz-with-glibc2.33

KiB Mem:    32593540 total,  29913744 free

KiB Swap:    4194300 total,   4194300 free

Timestamp of repository gentoo: Sun, 20 Feb 2022 06:30:01 +0000

Head commit of repository gentoo: 005039a5b1e2df80906cacd821283f5da30f2986

sh bash 5.1_p16

ld GNU ld (Gentoo 2.37_p1 p2) 2.37

app-misc/pax-utils:        1.3.3::gentoo

app-shells/bash:           5.1_p16::gentoo

dev-lang/perl:             5.34.0-r6::gentoo

dev-lang/python:           3.8.12_p1-r1::gentoo, 3.9.9-r1::gentoo, 3.10.0_p1-r1::gentoo

dev-lang/rust-bin:         1.58.1::gentoo

dev-util/cmake:            3.22.2::gentoo

dev-util/meson:            0.60.3::gentoo

sys-apps/baselayout:       2.7-r3::gentoo

sys-apps/sandbox:          2.25::gentoo

sys-apps/systemd:          249.9::gentoo

sys-devel/autoconf:        2.13-r1::gentoo, 2.71-r1::gentoo

sys-devel/automake:        1.16.4::gentoo

sys-devel/binutils:        2.37_p1-r2::gentoo

sys-devel/binutils-config: 5.4::gentoo

sys-devel/clang:           13.0.0::gentoo

sys-devel/gcc:             11.2.0::gentoo

sys-devel/gcc-config:      2.5-r1::gentoo

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

sys-devel/lld:             13.0.0::gentoo

sys-devel/llvm:            13.0.0::gentoo

sys-devel/make:            4.3::gentoo

sys-kernel/linux-headers:  5.15-r3::gentoo (virtual/os-headers)

sys-libs/glibc:            2.33-r7::gentoo

Repositories:

gentoo

    location: /var/db/repos/gentoo

    sync-type: rsync

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

    priority: -1000

    sync-rsync-verify-jobs: 1

    sync-rsync-verify-metamanifest: yes

    sync-rsync-verify-max-age: 24

    sync-rsync-extra-opts: 

localrepo

    location: /var/db/repos/localrepo

    masters: gentoo

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="@FREE"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /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/php/apache2-php7.4/ext-active/ /etc/php/apache2-php8.0/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/cli-php8.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=native -O2 -pipe"

DISTDIR="/var/cache/distfiles"

EMERGE_DEFAULT_OPTS="-j8 -l8"

ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH 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="-march=native -O2 -pipe"

FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live 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 qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

FFLAGS="-march=native -O2 -pipe"

GENTOO_MIRRORS="https://mirror.init7.net/gentoo/ http://mirror.init7.net/gentoo/ rsync://mirror.init7.net/gentoo/"

LANG="en_GB.utf8"

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

MAKEOPTS="-j8 -l8"

PKGDIR="/var/cache/binpkgs"

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"

SHELL="/bin/bash"

USE="X a52 aac acl acpi alsa amd64 apache2 bluetooth branding bzip2 cairo cdda cdr cli colord crypt cups dbus dri dts dvd dvdr eds encode evo exif flac fortran gdbm gif gnome gnome-keyring gnome-online-accounts gnome-shell gpm gstreamer gtk gui iconv icu introspection ipv6 jpeg lcms libglvnd libnotify libsecret libtirpc mad mng mp3 mp4 mpeg multilib nautilus ncurses networkmanager nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp spell split-usr ssl startup-notification svg sysprof systemd tiff tracker truetype udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xkb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2020" 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 greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="intel i965 iris nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

```

http://dpaste.com/64SU2SEB8

c'è qualcosa che no va? migliorie da fare?

come sempre grazie mille

----------

## cloc3

dubito di risolvere il tuo problema. ma puoi verificare se hai installato il microcode per la tua cpu.

p.s.

inoltre, per verificare se il rallentamento è un problema della configurazione gentoo, puoi confrontare con una compilazione di libreoffice eseguita in chroot da un'altra distribuzione.

----------

## luna80

Grazie mille per la risposta.

In effetti con il microcode non ho provato, non ci ho pensato... appena ho un attimo provo.

Idem per chroot, come test è utile

Ho provato anche un benchmark (hardinfo) e i risultati veramente sono scarsi, non è quindi solo un problema di emerge come ho dubitato

Grazie ancora, ti farò sapere  :Smile: 

----------

## sabayonino

 :Very Happy:  Ciao

L'Ultimo portatile consisteva in ?

Giusto per fare una comparazione.

Ci possono essere differenze marcate anche se "nuovo"

Frequeza CPU,RAM 

Flags della CPU

Condizioni di compilazione : sono le stesse ?

PS : nell'emerge --info noto

```
EMERGE_DEFAULT_OPTS="-j8 -l8" 
```

```

-l [LOAD], --load-average[=LOAD]

              Specifies  that  no  new builds should be started if there are other builds running and the load average is at least LOAD (a floating-point number).  With no argument, removes a previous load

              limit.  This option is recommended for use in combination with --jobs in order to avoid excess load. See make(1) for information about analogous options that should be configured via MAKEOPTS

              in make.conf(5).

```

Utilizzavi anche prima questa opzione ?

----------

## luna80

il vecchio portatile era un lenovo yoga 910 e aveva un i7-7500U (2.70 GHz) con 16GB di ram, EMERGE_DEFAULT_OPTS se non erro era impostato a -j4 -l4, la sostanziale differenza è però che il vecchio era con openrc mentre il nuovo con systemd.

dici di provare a ridurre -l8 in EMERGE_DEFAULT_OPTS?

grazie anche a te!

----------

## sabayonino

la versione "U" , degli intel è quella che punta al risparmio energetico . In pratica la CPU non ha il multithreading , ogni core viene sfrutatto al massimo e le risorse non vengono suddivise tra i vari core di una CPU con appunto il multithread attivo

Se il pc nuovo lo permette , dal bios dovresti provare a disabilitare il SMT (Multi thread o multiprocesso) e vedere come si comporta.

Essendo un portatile , di solito il bios ha spesso funzioni molto limitate   :Crying or Very sad: 

Non sempre il multithread è sinonimo di "prestazioni" .

Dipende se l'applicazione in esecuzione è creata per sfruttare bene il MT . In alcune situazioni spesso se ne sconsiglia l'attivazione .

Però dipende da caso a caso , per un unso generico potrebbe anche non notarsi la differenza

Esempio 

4 Core no Multithread : MAKEOPTS="-j4" ---> avrai 4 Jobs per ogni core della CPU (qui sfrutti tutto il core per un solo processo)

4 core Si multithread (8 threads) : MAKEOPTS="-j8" --> avrai 2 Jobs per ogni core della CPU (qui il singolo core deve gestire 2 processi , con conseguente aumento di utilizzo della RAM )

Qualche anno fa possedevo anche io una cpu "U" della intel , certi pacchetti li compilava veramente molto velocemente confronto al fratellone maggiore ..però la differenza di frequenza si sentiva (2,96 del "fratellone" vs 1,8 :Cool: 

PS : restando in ambito ottimizzazione applicazione , dai una occhiata a : 

```
app-portage/cpuid2cpuflags
```

https://wiki.gentoo.org/wiki/CPU_FLAGS_X86/en

Giusto per dare quel "spunto" in più a certe applicazioni , generalmente multimediali.

----------

## luna80

ho la possibilità nel bios di disabilitare il multithreading, cambio quindi nel make.conf MAKEOPTS e EMERGE_DEFAULT_OPTS giusto? le tolgo in pratica...

però non è che mi entusiasma la cosa, per test posso provare ma non la userei come soluzione   :Surprised: 

intanto ho provato con microcode ma non è cambiato nulla, devo provare ancora con il chroot da una live di ubuntu

adesso mi leggo anche delle cpu flags

cmq inizio a rassegnarmi, diciamo che non è che sia un problema enorme la "lentezza" ma mi girano un pò aver cambiato mezzo e aver fatto un passo indietro, senza contare che mio marito si è preso un portatile da poco e con 8GB di ram e viaggia meglio del mio (va beh amd ryzen 3...ma...)   :Sad: 

domanda forse un pò stupida, ma può cambiare qualcosa tra openrc e systemd in termini di performance? non credo, però me lo sono chiesta

----------

## sabayonino

Se per "lentezza" la intendi nella compilazione , non credo che il sistema di init influisca più di tanto , anzi . 

Se il tuo problema è solo nella compilazione  , puoi provare quanto esposto , altro non mi viene in mente.

Giocare con i parametri da passare al compilatore , gcc o LLVM o quel che usi.

Se noti unz lentezza in generale , buttaci un occhio anche all'HDD (è un SSD ? o un meccanico ? )

Quali caratteristiche prestazionali ha ?

Forse hai un SSD un pò "floscio"   :Confused: 

Anche le RAM non sono tutte uguali , dipende dalla frequenza , dal CL e da altri fattori.

https://www.tomshardware.com/reviews/cas-latency-ram-cl-timings-glossary-definition,6011.html

----------

## luna80

Grazie mille, sei stato gentilissimo, mi hai dato un po' di spunti...

Vediamo se guadagno qualcosa

----------

## xdarma

 *luna80 wrote:*   

> 
> 
> http://dpaste.com/64SU2SEB8
> 
> 

 

Mi restituisce un errore. Puoi verificare il collegamento?

Altre cose che controllerei:

- governor

- temperatura elevata che obbliga la cpu a diminuire la frequenza

----------

## luna80

 *xdarma wrote:*   

>  *luna80 wrote:*   
> 
> http://dpaste.com/64SU2SEB8
> 
>  
> ...

 

eccolo 

http://dpaste.com/AMZBG46MR

grazie, la temperatura...ora è di 66°C (e ora sta compilando)

tra l'altro, aggiungo che pure la batteria mi delude...anche senza fare nulla di che, tipo navigare e basta, dura un'oretta...figuriamoci se compilo (che sia un emerge o un mio programma)...

----------

## xdarma

 *luna80 wrote:*   

> 
> 
> eccolo 
> 
> http://dpaste.com/AMZBG46MR
> ...

 

Il governor di default è "userspace" e non credo possa fare una grande differenza rispetto a "performance".

Per toglierti i dubbi sul kernel potresti installare, parallelamente al tuo, il kernel binario sys-kernel/gentoo-kernel-bin e vedere se cambia qualcosa.

Non serve compilarlo quindi è un'operazione più rapida.

La temperatura è buona, quindi escluderei problemi di surriscaldamento.

----------

## luna80

Mi avete dato un po' di idee ma, tra ciò che ho già provato e ció che proverò non mi illudo di ottenere grandi cambiamenti...

Intanto oggi intanto che aggiornavo webkit-gtk faticavo ad usare anche solo geany...e ci ha messo circa 2h30.

Ricapitolando, devo ancora provare la compilazione con chroot, il kernel binario, parametri vari al compilatore, le cpuflag e disabilitare nel bios il multithreading...priorità alle cpuflag, ai parametri ed il kernel perché gli altri due sono più che altro dei test...

In ogni caso grazie mille a tutti, vi aggiornerò

----------

## luna80

 *sabayonino wrote:*   

> 
> 
> Esempio 
> 
> 4 Core no Multithread : MAKEOPTS="-j4" ---> avrai 4 Jobs per ogni core della CPU (qui sfrutti tutto il core per un solo processo)
> ...

 

rileggevo questo.

secondo te quindi dovrei rivedere i parametri? non capisco come, nel senso in ogni caso viene usata la cpu al 100%,

magari diminuire il --load-average giusto per tenere qualche risorsa libera per fare altro un pò più agevolmente intanto che compila? non so se ho capito giusto...perdonami...mi ha impostato tali valori automaticamente il minimal durante l'installazione e li ho dati per buoni

addirittura magari provare a togliere del tutto la compilazione parallela omettendo sia MAKEOPTS che EMERGE_DEFAULT_OPTS? ma cosa ci guadagnerei? 

mi rendo conto che ora sto concentrandomi solo sulla compilazione. che è la cosa che mi preme di più...anche perchè diciamo che se programmo e basta (il computer lo uso per quello e poco altro) tutto va liscio, ma appena compilo quanlcosa di "grosso" mi cadono davvero le calzette

----------

## sabayonino

Fai delle prove col il MAKEOPTS 

I paccchettoni grossi tipo webkit-gtk , qtwebengine  richiedono molte risorse 

prendi come rifermento 2GB di ram occupata in alcuni processi di compilazione per questi pacchettoni per ogni thread in uso  -j8 ?? almeno 16 GB di ram utilizzata in alcuni momenti , poi se compili in ram anche se hai 32GB di memoria , ne porta via molta  ... mettici il resto dei processi in utilizzo  tipo browser con molte schede aperte , ed altro e stai presto a saturare il tutto

Noto che nelle caratteristiche hai 1TB di disco . E' un HDD meccanico ?  scrivendo molto , potrebbe presentarsi un collo di bottiglia (o di damigiana   :Laughing:  )

Considera l'utilizzo di CCACHE  , se almeno un processo fallisce si va a rileggere i dati pre-compilati precedentemente risparmiando la rielaborazione .

E' vero che con CCACHE si va ad utilizzare ancora di più il disco , ma se compili in ram , proprio per scaramanzia che il processo venga interrotto , poi è più rapido nell'essere rieseguito.

Anche a me quando capitanosti super pacchetti mi faccio il segno della croce ogni volta (cerco di aggiornarli alla notte quando il pc non è in uso) ed ho una configurazione del tipo

i7-6700HQ CPU @ 2.60GHz

1xSSD / e /home

1xHDD dove ci piazzo la notmpfs per la compilazione in RAM e altri dati

1 Swap su schedina SD da 8GB che , anche se poco efficiente , può dar una mano  

E per i super-pacchetti , li ho impostati  a -j3 (o -j2) ed ancora ogni tanto lagga

Sperando che qualcuno venga incontro a chi non ha hardware esaltante , ma nemmeno una ciofeca , con qualche binario per sti super-paccheti   :Mad: 

```
genlop -i dev-qt/qtwebengine

 * dev-qt/qtwebengine

   Total builds: 12

   Global build time: 4 days, 11 hours, 35 minutes and 40 seconds.

   Average merge time: 8 hours, 57 minutes and 58 seconds.
```

 :Evil or Very Mad: 

PS : considera che ci gira F@H  H24 su 4 core fissi al 100%    :Mr. Green: 

----------

## luna80

il disco è ssd

come swap ho messo 4GB ma sono sprecati, non viene praticamente mai usata (a meno che il monitoring non sia farlocco...non l'ho mai visto sopra al 0%   :Question:  ), comunque noto che anche la ram non viene mai usata chissà quanto nemmeno quando stresso di più con compilazioni mie , emerge vari, browser aperto etc

per finire mi sa che farò così e prendo l'abitudine di aggiornare quando non uso il computer...o non ci sto già facendo chissà cosa, non è grave...di solito aggiorno ogni giorno ma non è che deve per forza essere così...quando mi fa comodo

----------

## Leonardo.b

Le prestazioni del computer sono sempre deludenti, oppure solo quando Portage lavora in background?

EMERGE_DEFAULT_OPTS="-j8" compila fino ad otto pacchetti contemporaneamente. Quanto tempo impieghi a compilare LibreOffice non è un dato rilevante circa le prestazioni del computer, dipende da cosa compili in parallelo.

Rimuovi EMERGE_DEFAULT_OPTS.

----------

## luna80

Si, per finire ho tenuto solo il MAKEOPTS e va bene così, è un buon compromesso, effettivamente EMERGE_DEFAULT_OPTS era quello che dava più problemi.

Grazie mille a tutti, come sempre gentili e disponibili

----------

