# Straszliwie wolne emerge :(

## dylon

Cześć.

Może mi pomożecie z emerge?  :Smile: 

Od jakiegoś czasu (bliżej nieokreślonego  :Smile:  ) każda kompilacja przez emerge jest straszliwie wolna, a dokładnie wolne jest wyszukiwanie zależności.

Sprawdziłem już chyba wszystkie rady w znalezionych podobnych tematach i nic.

W okolicach połowy zeszłego roku działało jeszcze szybko... 

Teraz stoję z aktualizacją systemu bo każde "emerge -uDNavt system/world" trwa prawie godzinę  :Sad:  i wywala mi zależnościami do rozwiązania (i takie puszczanie kilka razy żeby sprawdzić co jeszcze brakuje etc. jest ponad moją cierpliwość)

Może Wy się czegoś doszukacie...

Nawet taka malutka instalacja:

```
>root@dylon<:/root>)# time emerge -av mtr   

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] net-analyzer/mtr-0.82  USE="ipv6 suid -gtk" 267 kB

Total: 1 package (1 reinstall), Size of downloads: 267 kB

Would you like to merge these packages? [Yes/No] ^CInterrupted.

emerge -av mtr  29,64s user 1,66s system 22% cpu 2:21,33 total

```

poniżej moje emerge --info

```
>root@dylon<:/root>)# emerge --info

Portage 2.2.0_alpha157 (default/linux/amd64/13.0/desktop/kde, gcc-4.6.3, glibc-2.16.0, 3.1.4-gentoo-dylon-smp-core2 x86_64)

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

System uname: Linux-3.1.4-gentoo-dylon-smp-core2-x86_64-Intel-R-_Core-TM-2_CPU_6420_@_2.13GHz-with-gentoo-2.2

KiB Mem:     2046140 total,    285656 free

KiB Swap:    4194300 total,   3907788 free

Timestamp of tree: Thu, 11 Apr 2013 19:15:01 +0000

ld GNU ld (GNU Binutils) 2.23.1

ccache version 3.1.9 [disabled]

app-shells/bash:          4.2_p42

dev-java/java-config:     2.1.12-r1

dev-lang/python:          2.6.8-r1, 2.7.3-r3, 3.1.5-r1, 3.2.3-r2

dev-util/ccache:          3.1.9

dev-util/cmake:           2.8.10.2-r1

dev-util/pkgconfig:       0.28

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.8

sys-apps/sandbox:         2.6

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.6, 1.12.5, 1.13.1

sys-devel/binutils:       2.23.1

sys-devel/gcc:            4.3.6-r1, 4.4.6-r1, 4.5.4, 4.6.3

sys-devel/gcc-config:     1.8

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.7 (virtual/os-headers)

sys-libs/glibc:           2.16.0

Repositories: gentoo wirelay desktop-effects local

ACCEPT_KEYWORDS="amd64 ~amd64"

ACCEPT_LICENSE="*"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--autounmask=n --with-bdeps=y"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync metadata-transfer news nodoc noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LANG="pl_PL.UTF-8"

LC_ALL="pl_PL.UTF-8"

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

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_EXTRA_OPTS="--progress"

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

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/var/lib/layman/wirelay /var/lib/layman/desktop-effects /usr/local/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi aiglx alsa amd64 apache2 ape apm asf aspell bash-completion berkdb bindist bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dv dvd dvdr emboss encode exif extras faac fam ffmpeg firefox flac gdbm gif glibc-omitfp gpm gtk iconv ieee1394 ipv6 java jpeg kde kde4 kipi lcms ldap libnotify lm_sensors mad matroska mmx mng modules mp3 mp4 mpeg mudflap multilib multimedia musepack mysqli ncurses nforce2 nls nptl nptl_only nsplugin ntfs nvidia ogg opengl openmp pam pango pcre pdf phonon plasma pmu png policykit posix postgres ppds python qt qt3support qt4 quicktime readline sasl sdl semantic-desktop session slang smp spell sse sse2 ssl startup-notification svg tcpd theora threads tiff truetype tv udev udisks unicode upower usb v4l v4l2 vcd vdpau vorbis wxwidgets x264 xcb xcomposite xinerama xml xorg xscreensaver xulrunner xv xvid xvmc yv12 zip zlib zsh-completion" ABI_X86="64" ALSA_CARDS="emu10k1 emu10k1x hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" NETBEANS_MODULES="php ide" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia nv" 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:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON

```

----------

## SlashBeast

emerge smiga po systemie plikow, jaki system plikow uzywasz i w ilu procentach jest pelen?

Druga sprawa, to widze, ze masz raptem 270 MB ramu wolne, wolny ram jest uzywany na cache dyskowe, byc moze po odpaleniu raz emerge i zrobieniu czegos on to wywala i znowu musi czytac z dysku zamiast z ramu. Uzywasz jakies cwaniackie technologie by trzymac kupe smiecia w ramie?

----------

## dylon

 *SlashBeast wrote:*   

> emerge smiga po systemie plikow, jaki system plikow uzywasz i w ilu procentach jest pelen?

 

```
>root@dylon<:/root>)# df -h

System plików  Typ      rozm. użyte dost. %uż. zamont. na

rootfs         rootfs     67G   36G   28G  57% /

/dev/root      ext4       67G   36G   28G  57% /

devtmpfs       devtmpfs  998M     0  998M   0% /dev

tmpfs          tmpfs    1000M  408K  999M   1% /run

none           tmpfs    1000M     0 1000M   0% /dev/shm

cgroup_root    tmpfs      10M     0   10M   0% /sys/fs/cgroup

```

System raczej nie jest pofragmentowany. Katalog /usr/portage także nie, bo ostatnio wywaliłem go całego i zaciągnąłem na nowo - ta operacja także nie przyśpieszyła emerge....

 *Quote:*   

> 
> 
> Druga sprawa, to widze, ze masz raptem 270 MB ramu wolne, wolny ram jest uzywany na cache dyskowe, byc moze po odpaleniu raz emerge i zrobieniu czegos on to wywala i znowu musi czytac z dysku zamiast z ramu. Uzywasz jakies cwaniackie technologie by trzymac kupe smiecia w ramie?

 

Już wędrowałem tą drogą i niestety nie wygląda żeby to było to. Faktycznie przy normalnym działaniu mam mało ramu wolnego, ale sprawdzałem to też świeżo po reboot-cie gdzie wolnego było ok 1GB i różnicy w prędkości emerge nie było.

Nie używam niczego udziwnionego  :Smile:  bo mam po prostu za mało ramu (tylko 2GB i jakoś specjalnie nie czuję potrzeby ładować więcej, tym bardziej że musiałbym także zmienić płytę gł. - a mam ciekawsze możliwości wydawania pieniędzy  :Wink:  )

----------

## Jacekalex

U mnie też mocno zwolniło, także witam w klubie  :Smile: 

Miejsca w RAM ma tylko 3G (/var/tmp w tmpfs), całego RAMU mam 4G, system plików ext4.

Ale generalnie mnie to aż tak nie zawadza.

```
emerge --version

Portage 2.2.0_alpha171 (hardened/linux/amd64/selinux, gcc-4.6.3, glibc-2.15-r3, 3.8.8-gr1 x86_64)
```

Pozdro

 :Cool: 

----------

## SlashBeast

Problemem moze byc /var/db/pkg i sprawdzanie, tego co tam jest ze stanem faktycznym na dysku. Sprawdz czy fsck.ext4 -D z livecd cos zmieni.

----------

## dylon

 *SlashBeast wrote:*   

> Problemem moze byc /var/db/pkg i sprawdzanie, tego co tam jest ze stanem faktycznym na dysku. Sprawdz czy fsck.ext4 -D z livecd cos zmieni.

 

Niestety, nie zmieniło... nawet specjalnie długo jakoś nie chciało optymalizować  :Smile:  całość trwała jakieś 10 sekund.

```
 root@ubuntu:~# fsck.ext4 -D -f -v /dev/sdb1

e2fsck 1.41.9 (22-Aug-2009)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 3A: Optimizing directories

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****

 1064447 inodes used (24.20%)

    3430 non-contiguous files (0.3%)

     829 non-contiguous directories (0.1%)

         # of inodes with ind/dind/tind blocks: 0/0/0

         Extent depth histogram: 1031838/873

 9543099 blocks used (54.29%)

       0 bad blocks

       1 large file

  951426 regular files

   75755 directories

    1053 character device files

    4089 block device files

      67 fifos

    1539 links

   32027 symbolic links (26496 fast symbolic links)

      21 sockets

--------

 1065977 files
```

HDD jakimś demonem prędkości nie jest, ale działa przyzwoicie i nie sądzę aby w nim leżał problem.

```
>root@dylon<:/root>)# hdparm -tT /dev/sda

/dev/sda:

 Timing cached reads:   3538 MB in  2.00 seconds = 1769.37 MB/sec

 Timing buffered disk reads: 160 MB in  3.03 seconds =  52.74 MB/sec

```

----------

## SlashBeast

a sprawdz poziom iowait-ow podczas startu emerge, ew pusc emerge z debugiem i sprawdz co on dokladnie robi - uwazaj tylko na output, bedzie go strasznie dlugo.

----------

## dylon

 *SlashBeast wrote:*   

> a sprawdz poziom iowait-ow podczas startu emerge, ew pusc emerge z debugiem i sprawdz co on dokladnie robi - uwazaj tylko na output, bedzie go strasznie dlugo.

 

W zasadzie cały czas to wygląda tak:

```
Every 1,0s: iostat                                                                                                                                                                                                         Thu Apr 25 23:03:09 2013

Linux 3.1.4-gentoo-dylon-smp-core2        25.04.2013      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

          19,47    1,25    6,11    1,99    0,00   71,17

```

zmieniają się dziesiętne/setne części procentów.

Co ciekawe, przez cały czas sprawdzania zależności przez emerge mam 100% obciążenia jednego z rdzeni procesora (c2d) - na przemian.

Po długim weekendzie będę próbował sprawdzić jeszcze starszą wersję portage, ale coś mi się zdaje że zależności nie pozwolą  :Sad: 

----------

## lazy_bum

 *dylon wrote:*   

> Po długim weekendzie będę próbował sprawdzić jeszcze starszą wersję portage, ale coś mi się zdaje że zależności nie pozwolą :(

 

Sugeruję raczej sprawdzić nowszą. Co ciekawe na żadnej maszynie nie miałem -alpha157 — może to jakaś wadliwa wersja?

----------

## Jacekalex

 *lazy_bum wrote:*   

>  *dylon wrote:*   Po długim weekendzie będę próbował sprawdzić jeszcze starszą wersję portage, ale coś mi się zdaje że zależności nie pozwolą  
> 
> Sugeruję raczej sprawdzić nowszą. Co ciekawe na żadnej maszynie nie miałem -alpha157 — może to jakaś wadliwa wersja?

 

```
emerge --version

Portage 2.2.0_alpha173_p12 (hardened/linux/amd64/selinux, gcc-4.6.3, glibc-2.15-r3, 3.8.10-gr1 x86_64)
```

Najnowsza sys-apps/portage-9999  z gita, instalowana kilka dni temu, symptomy podobne.

Przy mieleniu zależnościami na jednym jajku jest jakieś 40% z tego tytułu, procek c2d -e6750 - 2x2.66.

Pozdro

 :Cool: 

----------

## tczaude

Ja bym szukał po stronie systemu plików problemu.

Ext nigdy już nie zainstaluje pod gentoo choćby mieli za to zapłacić.

Problem się zaczął od momentu buga z zapisem maetadanych o którym wspomina Towards. 

I tak jak Ty zaobserwowałem z czasem dziwny spadek wydajności sprawdziłem na 5 rożnych maszynach wirtualnych no i na moim lapatopie.

Zmiana na XFS rozwiązała problem i mam już spokój jeszcze dobrze dla portage wsadzić w co najmniej Raisera  niestety XFS ma  wadę przy małych pliczkach. 

Co do dużą ilością zapisu na dysku polecałbym pogrzebać jeszcze z opcją vm.swappiness pozwoli na zmniejszenie w niektórych przypadkach mielenia dysku (swapa)

----------

## Xywa

Ja mam to samo. Jak rok temu kupiłem nowego laptopa to efekty emerge -puDN world widziałem błyskawicznie, teraz miele i miele i miele...

----------

## tczaude

Trochę watek źle zrozumiałem.

Dla uzyskania jakiś 5-10% wydajności można zmienić troszkę domyślne ustawienia pliku portage.sqlite a mianowicie 

PRAGMA main.cache_size=100;

PRAGMA main.page_size = 512;(wielkość klastra dysku)

PRAGMA main.locking_mode=EXCLUSIVE;

PRAGMA main.synchronous=NORMAL;

PRAGMA main.journal_mode=WAL;

Ale rzeczywiście w wersji 2.2 miały zostać nałożone łatki żeby wszystko pracowało szybciej jak widać chyba nie do końca

Niestety wersja 2.3 nie widać jak na razie różnic w wydajności w stosunku do 2.2  

Zobaczę czy coś jeszcze uda się znaleźć

----------

## dylon

Na portage 2.1.11.60 czas potrzebny na sprawdzanie zależności wydatnie się zmniejszył, ale niestety dalej trwa nienaturalnie długo:

```
emerge -uDNavt system  539,12s user 11,13s system 99% cpu 9:13,86 total

```

Jeszcze muszę sprawdzić jak będzie wyglądał ten czas jak dam drzewo portage na ext3...

[EDIT]

Tak to wygląda na ext3:

```
emerge -uDNavt system  537,14s user 9,99s system 89% cpu 10:10,19 total

```

Ale faktycznie ten test nie miał większego sensu, skoro z dysku odczyty przy tym nie sa zbyt częste...

[/EDIT]

----------

## tczaude

a funtoo jest wersja Portage 2.3.5-r7

I tez wydajność jest taka sama

Jedyna kwestia to pytanie gdzie tkwi problem czy na poziomie sqlite czy emerge .

Jutro postawie portage bez pythona3 i zobaczymy czy zienia się czasy jeśli tak to problem z super optymalna 1 tabela w pliku sqlite.

Jesli zostanie to znaczy ze coś z emerge. 

Ale stawiam na emerge bo bardzo małe zmiany przynosi manipulacja plikiem bazy

A mieli poprawić wydajność w wersja 2.2 :/

Ale ogólnie nie szukałbym po stronie sytemu plików bo robiłem pomiary na starej maszynie z zwykłym HDD i na SSD czasy porównywalne.

Jedyna pytaniem czy na systemach z kompresja jest porównywalnie mam na myśli np. brtfs. Gdzie ilość operacji IO kontrolera jest mniejsza.

Ale dzięki chłopaki za wątek zauważyłem jak przeczytałem

----------

## sebas86

 *tczaude wrote:*   

> Ext nigdy już nie zainstaluje pod gentoo choćby mieli za to zapłacić.

  Dla ścisłości mógłbyś powiedzieć dokładnie, o którą wersję EXT chodzi. Zgaduję, że o 4 - ostatnio miałem również problem z wydajnością, przy ściąganiu aplikacji przez Steam. Winowajcą okazała się włączona (od którejś wersji jądra domyślnie) bariera przy zapisywaniu metadanych - kilka opcji w fstab dało naprawdę niezłego boosta (wcześniej w 100% zablokowany I/O przy transferach rzędu 1MB/s, po zablokowaniu barrier idzie tyle ile może...), co do samego błędu to chyba został naprawiony (tak przynajmniej wynika z wątków, które przejrzałem w poszukiwaniu rozwiązania swojego problemu).

----------

## tczaude

Problem tyczy się ext3 oraz ext4. 

Metadane są szybciej zapisywane momentami aniżeli dane wynikiem tego może się okazać ze dane zapisane na dysku wg metadanych są a podczas odczytu dostajesz 0.

Od jajka w wersji 2.6.30 zaczęto naprawiać problemy do tego jajka został wydany patch dodający opcje data=guranted dla ext4 czy jakoś tak niestety w niektórych przypadkach okazywało się że strasznie zamula system plików i był on wolniejszy od ext3. Dodatkowo wprowadzając opcje data=writeback dla ext4 dzięki której najpierw zapisywane były dane potem metadane. 

Niestety nawiązując do patcha ma on jeden problem system może sie wykrzaczyć e momencie gdy zmieniona jest nazwa pliku który w a nadpisać inny plik wtedy system się wykrzaczy oraz w momencie gdy usuwasz jeszcze nie za alokowany plik. niestety fsync jest bezlitosny. Ta ostatnia sytuacja jest bardzo zadka występuje głownie w przypadku środowisk multi-user. Z tym że swojego czasu używałem Apacha z workerem i diskcache i nagle mi dane znikały i co 3 dni fsck musiałem odpalać. Teraz udało mi się prze migrować na mojego faworyta XFS który jest czasami minimalnie wolniejszy czasami szybszy jedynie przy usuwaniu odpada ale nie wiem co do błędy. na starych maszynach mam RaiserFS ostatnio zrobiłem po 2 latach pracy pod baza danych Pervasiva reboot z sprawdzaniem bez błędu żadnego teraz zostaje i tylko zobaczyć jak się spisze brtfs z commpress=zip w perspektywie długo terminowej

----------

## dylon

 *sebas86 wrote:*   

>  Winowajcą okazała się włączona (od którejś wersji jądra domyślnie) bariera przy zapisywaniu metadanych - kilka opcji w fstab dało naprawdę niezłego boosta (wcześniej w 100% zablokowany I/O przy transferach rzędu 1MB/s, po zablokowaniu barrier idzie tyle ile może...), .

 

Czy mógłbyś pokazać te opcje?

----------

## tczaude

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

----------

## sebas86

 *tczaude wrote:*   

> noatime,data=writeback,barrier=0,nobh,errors=remount-ro

  Dokładnie, u siebie dorzuciłem jeszcze dłuższe minimalne i maksymalne czasy do grupowania (batch) w ramach eksperymentu.

----------

## tczaude

```
min_batch_time
```

Może zwiększać latencje

Jeszcze zapomniałem dodać

W domowych warunkach można dać jeszcze nouser_xattr

----------

## SlashBeast

Dzisiaj dostalem zgloszenie, ze na kernelu 3.9 portage dziala tak wolno, jak tutaj opisujesz. Sprawdzales rozne wersje kerneli? Takie major jak 3.2, 3.4, 3.8, 3.9?

----------

## tczaude

To nie kwestia kernela wg mnie bo mimo różnych wersji na moich serwerach wyniki są podobne.

główny problem gdzieś leży w samym emerge albo w czymś od czego jest uzależniony bo dodatkowo tak jak napisałem nawet emerge z pythonem 2 nie robi różnicy zbytnio na poziomie 5%

----------

## tczaude

System plików XFS 

Kernel 3.9

real    1m41.389s

user    1m36.863s

sys     0m3.766s

Kernel 3.8.9

real    1m43.023s

user    1m33.177s

sys     0m7.371s

Swoja droga dużo fajnie brzmiących opcji w nowy kernelu jest  :Wink: 

Jedynie w chengelog dla karnela widzę ze coś z ext grzebali

----------

## Jacekalex

U mnie chodzi jednakowo na jajkach 3.8.x i 3.9, trochę zwalnia z powodu trzymania metadanych w sqlite, ale to bardzo przyspiesza eixa.

Przetestowałem po wyczyszczeniu RAMu z buforów, bylo wolne po uruchomieniu około 2GB.

Przy [code]emerge NuDaft world[/world] emerge zajął łącznie 965MB ram, a było jeszcze 1G wolnego.

Średnio też kupuję winę systemu plików przy liczeniu zależności, ponieważ koncert dyskowy zaczyna pracę emerge, ale trwa to jakieś 20 - 30% całej roboty, licząc do zapytania o akceptację zmian, potem emerge "myśli" ale dysku nie tyka, aż do instalacji.

Inny, większy problem z emerge pojawia się wtedy, gdy się kompiluje jakaś ciężka krowa, typu np Firefox czy Icedtea, emerge potrafi zablokować cały dysk, /tmp/portage przy tych programach jest na dysku, w innych - kiedy /var/tmp jest w tmpfs, też się to zdarza, kiedy wola i setki plików nagłówkowych.

Ogólnie można wytrzymać, choć chyba muszę dokupić ramu,  :Wink: 

Nawiasem pisząc, chyba zastanowię się nad głębszą modernizacją,

bo mój komputerek ma już 6 lat, dla sprzętu to jest kawałek czasu.

Pozdrawiam

 :Cool: 

----------

## tczaude

Jacekalex a to nie jest tak ze gdy masz w use python2 dla portage to ciagnie z hdd a gdy asz python3 w use to masz sqlite ??

----------

## Jacekalex

Python-2.7.3 + Portage.

Portage z Sgilte zrobiłem kiedyś z przepisu na wiki Gentoo, emerge troszkę zwolnił, ale za to eix się aktualizuje jak rakieta, co przy całym wianuszku overlayów się nawet opłaca.

Pozdrawiam

 :Cool: 

----------

## tczaude

nowy wynik 

real    1m25.474s

user    1m23.823s

sys     0m1.630s

po ustawieniu 

PORTAGE_NICENESS="-19"

PORTAGE_IONICE_COMMAND="ionice -c 1 -n 0 -p \${PID}"

czyli 20 sec urwane  :Smile: 

----------

## lazy_bum

Mógłby ktoś naświetlić o co chodzi z portage i sqlite? Przespałem jakąś zmianę?

 *Quote:*   

> U mnie chodzi jednakowo na jajkach 3.8.x i 3.9, trochę zwalnia z powodu trzymania metadanych w sqlite, ale to bardzo przyspiesza eixa.

 

Przyspiesza eix przy jakich działaniach?

----------

## Jacekalex

```
time eix-update

Reading Portage settings ..

Building database (/var/cache/eix/portage.eix) ..

[0] "gentoo" /usr/portage/ (cache: sqlite)

     Reading Packages .. Finished

[1] "zugaina" /var/lib/layman/zugaina (cache: sqlite)

     Reading Packages .. Finished

[2] "proaudio" /var/lib/layman/pro-audio (cache: sqlite)

     Reading Packages .. Finished

[3] "roslin" /var/lib/layman/roslin (cache: sqlite)

     Reading Packages .. Finished

[4] "ubuntu" /var/lib/layman/ubuntu (cache: sqlite)

     Reading Packages .. Finished

[5] "hardened-dev" /var/lib/layman/hardened-development (cache: sqlite)

     Reading Packages .. Finished

[6] "multimedia" /var/lib/layman/multimedia (cache: sqlite)

     Reading Packages .. Finished

[7] "freeswitch" /var/lib/layman/freeswitch (cache: sqlite)

     Reading Packages .. Finished

[8] "xfce-dev" /var/lib/layman/xfce-dev (cache: sqlite)

     Reading Packages .. Finished

[9] "desktop-effects" /var/lib/layman/desktop-effects (cache: sqlite)

     Reading Packages .. Finished

[10] "sunrise" /var/lib/layman/sunrise (cache: sqlite)

     Reading Packages .. Finished

[11] "pentoo" /var/lib/layman/pentoo (cache: sqlite)

     Reading Packages .. Finished

[12] "mozilla" /var/lib/layman/mozilla (cache: sqlite)

     Reading Packages .. Finished

[13] "overlay-dev/blueness" /var/lib/layman/blueness (cache: sqlite)

     Reading Packages .. Finished

[14] "science" /var/lib/layman/science (cache: sqlite)

     Reading Packages .. Finished

[15] "wavilen" /var/lib/layman/wavilen (cache: sqlite)

     Reading Packages .. Finished

[16] "voip" /var/lib/layman/voip (cache: sqlite)

     Reading Packages .. Finished

[17] "stuff" /var/lib/layman/stuff (cache: sqlite)

     Reading Packages .. Finished

[18] "steam-overlay" /var/lib/layman/steam (cache: sqlite)

     Reading Packages .. Finished

[19] "x11" /var/lib/layman/x11 (cache: sqlite)

     Reading Packages .. Finished

[20] "mate-overlay" /var/lib/layman/mate (cache: sqlite)

     Reading Packages .. Finished

[21] "kde-sunset" /var/lib/layman/kde-sunset (cache: sqlite)

     Reading Packages .. Finished

[22] "lokalny" /var/portage/local (cache: sqlite)

     Reading Packages .. Finished

[23] "perl-gcpan" /var/portage/perl-cpan (cache: sqlite)

     Reading Packages .. Finished

Applying masks ..

Calculating hash tables ..

Writing database file /var/cache/eix/portage.eix ..

Database contains 16611 packages in 167 categories.

real   0m7.858s

user   0m6.146s

sys   0m0.356s
```

Po prostu eix nie parsuje ebuildów ub metadanych, tylko wczytuje bazę z informacjami o ebuildach.

Przepis zaczerpnięty wieki temu z wiki Gentoo, ale nie wiem, czy całe wiki dalej leży, czy działa,

 w każdym razie u mnie się nie otwiera.

Wada jest taka, że po eix-sync - leci emerge --metedata, ale tym niech się Cron martwi.  :Wink: 

Pozdrawiam

 :Cool: 

----------

## lazy_bum

[OT]

 *Quote:*   

> Po prostu eix nie parsuje ebuildów ub metadanych, tylko wczytuje bazę z informacjami o ebuildach.

 

To ma jakieś zalety w stosunku do nie‑sqlite? (bo, szczerze mówiąc, mój eix jest kosmicznie szybki i nie wiem co miałoby sqlite zmienić)

 *Quote:*   

> Przepis zaczerpnięty wieki temu z wiki Gentoo

 

Sugerowałbym wrócić do ustawień nie zaczerpywanych „wieki temu” z wątpliwego źródła (jeżeli mnie pamięć nie myli, to aktualnie wiki jest oficjalnie Gentoo (tzn. padnie wtedy, kiedy padnie fundacja), a nie tylko „powiązane nazwą”). I nie widzę związku między sqlite w eix a powolnym emerge…

[/OT]

----------

## Jacekalex

 *Quote:*   

>  Sugerowałbym wrócić do ustawień nie zaczerpywanych „wieki temu” z wątpliwego źródła (jeżeli mnie pamięć nie myli, to aktualnie wiki jest oficjalnie Gentoo (tzn. padnie wtedy, kiedy padnie fundacja), a nie tylko „powiązane nazwą”). I nie widzę związku między sqlite w eix a powolnym emerge… 

 

SOA#1

Przepis był na oficjalnej stronie Gentoo Wiki, działa, więc o co chodzi? 

Problemów też jakichś specjalnych nie stwierdziłem.

Pozdrawiam

 :Cool: 

----------

## lazy_bum

 *Jacekalex wrote:*   

> Przepis był na oficjalnej stronie Gentoo Wiki, działa, więc o co chodzi?

 

Gentoo Wiki, przed wtopą, nie było oficjalne. ;)

 *lazy_bum wrote:*   

> 
> 
>  *Quote:*   Po prostu eix nie parsuje ebuildów ub metadanych, tylko wczytuje bazę z informacjami o ebuildach. 
> 
> To ma jakieś zalety w stosunku do nie‑sqlite? (bo, szczerze mówiąc, mój eix jest kosmicznie szybki i nie wiem co miałoby sqlite zmienić)
> ...

 

To akurat była bardziej interesująca mnie część.

 *Jacekalex wrote:*   

> Python-2.7.3 + Portage.
> 
> Portage z Sgilte zrobiłem kiedyś z przepisu na wiki Gentoo, emerge troszkę zwolnił, ale za to eix się aktualizuje jak rakieta (…)

 

To portage z sqlite czy eix z sqlite?

----------

## SlashBeast

A jak z symbolami debugowania w kernelu? Daj 

```
grep -v '#' .config | grep DEBUG
```

 i wrzuc tutaj rezultat.

----------

## tczaude

to u mnie bo nie wiem do kogo było pytania  :Wink: 

CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y

CONFIG_SLUB_DEBUG=y

CONFIG_HAVE_DMA_API_DEBUG=y

CONFIG_X86_DEBUGCTLMSR=y

CONFIG_NETFILTER_DEBUG=y

CONFIG_PNP_DEBUG_MESSAGES=y

CONFIG_CB710_DEBUG_ASSUMPTIONS=y

CONFIG_AIC7XXX_DEBUG_MASK=0

CONFIG_AIC79XX_DEBUG_MASK=0

CONFIG_CIFS_DEBUG=y

CONFIG_DEBUG_KERNEL=y

CONFIG_HAVE_DEBUG_KMEMLEAK=y

CONFIG_DEBUG_RODATA=y

Swoja droga cos grzebia bo mi equery przestalo działać :/

----------

