# "Gute" und "böse" Auslastung?

## Vortex375

Ich habe da mal eine Frage zu einem seltsamen Phänomen das mir vorhin aufgefallen ist:

Wenn Azureus abstürzt, dann muss er beim nächsten Start alle Dateien eines noch nicht vollendeten Torrents neu einlesen und die Prüfsummen neu berechnen. Dabei wird das System so langsam, dass sogar der Mauszeiger zu ruckeln anfängt (trotz aktivierter HWcursor option). Das öffnen eines Terminals dauert bis zu einer Minute und der PC ist nicht zu gebrauchen bis Azureus fertig ist.

Jetzt denkt man: Ist ja klar, das System ist halt ausgelastet und es geht nix mehr. Ich frage mich nur eines: Wenn ich gerade am kompilieren bin, dann ist das system auch immer zu 100% ausgelastet, ich kann aber problemlos den PC weiter verwenden. Ich kann sogar noch neben dem kompilieren einen Film in mplayer anschauen. Lediglich das starten einiger Programme dauert etwas länger.

Ich frage mich, warum 100% Auslastung nicht gleich 100% Auslastung ist, sondern der PC das eine Mal dem Anschein nach viel stäker belastet ist als das andere Mal.

Achja, java läuft mit Priorität 0, genauso wie portage, daran kann es also nicht liegen.

----------

## NightDragon

Vielleicht gibts mehrer Threads als bei anderen anwendungen.

Machts einen unterschied wenn du die Priorität niedriger wie 0 stellst? 

Hm. Platte ausgelastet? RAM kurzfristig voll?

Ansonsten würde mir da nur noch eine irre Anzahl an IRQ-Anfragen einfallen oder eben Bus-Terror...

----------

## Vortex375

Ja, die Platte ist dabei wohl definitiv ausgelastet, das erklärt auch die langsamen Programmstarts, aber wie hängt das mit einem ruckelnden Mauszeiger zusammen?

Auf ram hab ich leider nicht geachtet.

Inwiefern hängt die Anzahl der Threads denn damit zusammen?

Java erstellt nämlich wie es aussieht ne ganze Menge Threads:   :Razz: 

```

ps -A | grep java

31614 ?        00:00:49 java

31615 ?        00:00:00 java

31616 ?        00:00:09 java

31617 ?        00:00:00 java

31618 ?        00:00:00 java

31619 ?        00:00:00 java

31620 ?        00:00:01 java

31621 ?        00:00:00 java

31622 ?        00:00:00 java

31623 ?        00:00:00 java

31627 ?        00:00:04 java

31628 ?        00:00:00 java

31629 ?        00:00:21 java

31630 ?        00:00:00 java

31631 ?        00:00:48 java

31632 ?        00:00:00 java

31633 ?        00:00:00 java

31635 ?        00:00:00 java

31636 ?        00:00:00 java

31637 ?        00:00:00 java

31638 ?        00:00:00 java

31639 ?        00:00:00 java

31640 ?        00:00:00 java

31641 ?        00:00:00 java

31642 ?        00:00:00 java

31643 ?        00:00:00 java

31644 ?        00:00:00 java

31645 ?        00:00:00 java

31646 ?        00:00:00 java

31647 ?        00:00:00 java

31648 ?        00:00:00 java

31650 ?        00:00:00 java

31651 ?        00:00:00 java

31658 ?        00:00:00 java

31659 ?        00:00:01 java

31660 ?        00:00:00 java

31662 ?        00:00:00 java

31663 ?        00:00:00 java

31664 ?        00:00:00 java

31665 ?        00:00:00 java

31666 ?        00:00:00 java

31667 ?        00:00:00 java

31668 ?        00:00:00 java

31669 ?        00:00:00 java

31670 ?        00:00:00 java

31672 ?        00:00:00 java

31689 ?        00:00:00 java

31702 ?        00:00:00 java

31704 ?        00:00:04 java

31705 ?        00:00:00 java

31708 ?        00:00:00 java

31713 ?        00:00:00 java

31714 ?        00:00:00 java

31715 ?        00:00:00 java

31718 ?        00:00:00 java

31719 ?        00:00:00 java

31720 ?        00:00:02 java

31722 ?        00:00:00 java

31723 ?        00:00:00 java

31724 ?        00:00:00 java

31732 ?        00:00:00 java

31752 ?        00:00:00 java

32453 ?        00:00:00 java

  889 ?        00:00:00 java

 2425 ?        00:00:00 java

17607 ?        00:00:00 java

 9532 ?        00:00:00 java

 9585 ?        00:00:00 java

 9686 ?        00:00:00 java

 9709 ?        00:00:00 java

 9716 ?        00:00:00 java

 9718 ?        00:00:00 java

 9727 ?        00:00:00 java

 9728 ?        00:00:00 java

```

----------

## iDeJ

Vortex375, du beschreibst ein Problem da ich auch hab  :Razz: 

Bei mir hab ich festgestellt, dass sobald vermehrt Zugriffe auf meine Festplatte erfolgen gar nichts mehr geht!

momentan ist das bei mir sogar so extrem (Platte zu 98% belegt) das teilweise gar nichts mehr geht, kein Sound, kein Bild refresh, kein Reaktion in irgendeiner weise irgendwelche eingaben!

Normalerweise tritt das bei irgendwelchen hash prozessen oder entpacken/kopieren von dateien auf, aber auch beim starten von gewissen größeren Programmen (World of Warcraft bzw. das laden der Welt in diesem Spiel)

abropo kopieren, wenn ich Dateien kopiere steigt meine Systemlast auf 100%!

Normalerwiese stört mich das nicht sonderlich, dies sind immer nur "ausfälle" von ein paar Sekunden, wenn allerdings mein RAM voll ist und es an die Swap Partition geht tritt das gleiche auf!

Ich habe dieses Problem aber erst mit meinem neuen System (nForce4, A64@3200+, 512, sATA Seagte 160GB), auf meinem alten hatte ich diese Probleme nicht (also z.b. beim kopieren von dateien keine 100% Systemlast und die anderen obrig beschriebenen)

Kann das ganze am sATA liegen? - die Platte hängt imo am nForce Controller, kann das eine Treibersache sein? (ich hab bis jetzt keine nvidia nforce  treiber oder sowas installiert (falls es welche von nvidia für den Controller gibt) - benutze die Kerneleigenen)

mfg

iDeJ

----------

## PrakashP

Java und Wine bringen den Linux scheduler durcheinander. Darum macht multi-tasking damit keinen Spaß mehr.

----------

## sschlueter

 *Vortex375 wrote:*   

> 
> 
> Wenn Azureus abstürzt, dann muss er beim nächsten Start alle Dateien eines noch nicht vollendeten Torrents neu einlesen und die Prüfsummen neu berechnen. Dabei wird das System so langsam, dass sogar der Mauszeiger zu ruckeln anfängt (trotz aktivierter HWcursor option). Das öffnen eines Terminals dauert bis zu einer Minute und der PC ist nicht zu gebrauchen bis Azureus fertig ist.
> 
> 

 

Daß das Öffnen eines Terminals eine Minute dauert, wird daran liegen, daß eine zeitlang nicht oder nur kaum von der Platte gelesen werden kann. Das mit dem ruckelnden Mauszeiger kann beispielsweise an hoher Interruptaktivität liegen.

Die wichtigsten Tools zu Erkennenung von Performance-Engpässen sind top und vmstat aus dem procps Paket und sar, iostat und mpstat aus dem sysstat Paket. Viele Werte lassen sich mit mehr als einem Tool anzeigen. sar beinhaltet glaube ich alle Meßwerte. 

Man benötigt für viele interessante Meßwerte einen 2.6er Kernel. Selbst der sehr wichtige "iowait" Wert wird bei einem 2.4er Kernel nicht angezeigt.

Die Festplatte ist ein Engpass, wenn der Wert von "iowait" größer als 0% ist. Bei festplattenintensiven Aufgaben, die wenig CPU erfordern, ist dieser Wert sehr hoch. Das kann man zum Beispiel gut sehen, wenn man auf einem System, wenn es gerade idle ist, "updatedb" ausführt. Der "iowait" Wert kann dann bis zu 98% gehen. (Ich setze natürlich auch den DMA-Modus vorraus. Ohne DMA-Modus hätte man in diesem Fall einen geringeren Wert bei "iowait" weil der "sys" Wert (also Kernelzeit) höher wäre.)

Beim emergen dagegen hapert es an der CPU, so daß man einen hohen Wert für "user" bzw. "nice" (je nachdem, ob man PORTAGE_NICENESS benutzt oder nicht) sehen kann, und der "iowait" Wert etwa bei 0% liegt (auch hier gehe ich wieder von einem System aus, das ansonsten idle wäre).

Das Problem mit dem Plattenzugriff ist bei IDE prinzipbedingt besonders übel. Da kann der Kernel nichts dran ändern. Besser wird es in Zukunft mit SATA und dem Native Command Queuing. Und am besten ist es AFAIK zur Zeit bei SCSI U320, aber das ist für die meisten Privatanwender natürlich keine Option  :Smile: 

Aber es hilft natürlich auch, ganz einfach mehrere Platten zu benutzen. Dann kann man extrem festplattenintensive Aktionen auf eine bestimmte Festplatte begrenzen, so daß beispielsweise die Systemplatte immer noch performant arbeiten kann.

Übrigens beziehen sich die nice-Werte nur auf die Priorität von Prozessen. Es gibt kein nice für I/O-Aktivitäten (d.h. es gab wohl mal einen experimentellen Kernel-Patch, da hab ich aber nie wieder was drüber gehört). Konkrekt bedeutet das, daß ein Prozess, auch wenn er mit dem nice-Wert 19 läuft, die Benutzbarkeit einer IDE-Platte durch extrem viele Zugriffe pro Zeiteinheit fast ganz zunichte machen kann, so daß selbst root, egal mit welchem nice-Wert da nichts dran ändern kann. Ich hab das IIRC mal bei htdig erlebt. Die Anzahl der Zugriffe pro Zeiteinheit kann man sich etwa mit iostat anschauen.

Anmerken möchte ich noch, daß Tuningmaßnahmen wie die Änderung des I/O-schedulers im Falle eins extrem hohen "iowait" Wertes auch nichts mehr bringen.

Zu wenig RAM kann auch ein Performance-Engpass sein. Das sieht man dann etwa mit vmstat daran, daß ständig viel in Swap ausgelagert wird und viel aus dem Swap zurückgeholt wird. Das macht sich dann auch wieder durch einen hohen "iowait" Wert bemerkbar, wäre aber diesmal mit mehr RAM zu vermeiden gewesen.

Die Interruptaktivität kann man sich mir sar für jeden einzelnen Interrupt getrennt angucken. Mittels cat /proc/interrupts oder lspci kann man herausfinden, welche Geräte die jeweiligen Interrupts benutzen. Damit kann man beispielsweise sehen, was die Leute meinen, wenn sie sagen, daß die Realltek-Netzwerkkarten so schlecht sind. Wenn ich bei meinem Fileserver mit 100Mbit-Realtek-karte mit voller Geschwindigkeit Daten übertrage, steigt die Anzahl der Interups pro sekunde ovn 1000 auf 15000 und der "softirq" Wert liegt bei etwa 30%. Da die CPU schnell genug ist, stellt das in diesem Fall keinen Flaschenhals dar. Dennoch ist das bei besseren Netzwerkkarten nicht so krass.

Wenn sich mehrere Geräte einen Interrupt teilen, mag es sein, daß eine hohe Interruptaktivität, die duch eins der Geräte verursacht wird, auch die anderen Geräte mit demselben Interrupt beeinträchtigt. Aber das sollte bei modernen Rechnern eigentlich nicht mehr so sein.

----------

## theche

die Ausführung von Java code kann man durch das USE-Flag jikes ein wenig verbessern (bzw die dann ausführbare Datei), aber das wird dir wohl in dieser Situation nicht helfen.

----------

## iDeJ

ich hab mir mal ein paar Programme aus dem systat Paket angeguckt und aus irgendeinem Grund hab ich dauerhaft einen iowait

von 16%, auch wenn der Rechner gerade idelt

iostat

```

Linux 2.6.12-gentoo-r6 (Deimos)         09/18/05

avg-cpu:  %user   %nice    %sys %iowait   %idle

          11.77    0.00   14.08   16.08   58.07

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda               0.00         0.01         0.00          8          0

sda              34.44      2346.25      1685.57    1627972    1169552

```

top

```

top - 11:13:44 up 13 min,  3 users,  load average: 0.39, 0.61, 0.35

Tasks:  69 total,   1 running,  68 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 99.0% id,  0.0% wa,  0.0% hi,  1.0% si

Mem:    511572k total,   343288k used,   168284k free,     3784k buffers

Swap:   506036k total,        0k used,   506036k free,   198188k cached

```

und dann hab ich noch ein paar Fragen *g

Muss ich NCQ eigentlich extra aktivieren?

Kann man das cache verhalten irgendwie verändern, ich meine es muss ja nicht sein das nur durch das kopieren von Dateien 300MB Ram draufgehen, vor allem wenn man bedenkt das irgendwie sinnlos ist etwas in den Swap zu cachen *g

----------

## ChrisM87

Hi,

NCQ mit nForce 4 kannst du vorerst vergessen, weil nVidia das Protokoll nicht offenlegt.

Diese Erfahrung musste ich auch vor einer Woche oder so machen.  :Sad: 

Aber NCQ ist auch wohl kaum dein Problem, in der Praxis bringt das nur recht wenig.

In den RAM cachen ist überhaupt nicht sinnlos, meistens brauchst du die Sachen ja nochmal, z.B. ein phpBB, das ein Avatar schreibt, ein Spiel, das ein Savegame schreibt oder Portage, das temporäre Dateien entpackt. Da wäre es ja sinnlos, das auf die Platte zu schreiben und gleich wieder zu lesen.

ChrisM

----------

## sschlueter

 *iDeJ wrote:*   

> ich hab mir mal ein paar Programme aus dem systat Paket angeguckt und aus irgendeinem Grund hab ich dauerhaft einen iowait
> 
> von 16%, auch wenn der Rechner gerade idelt
> 
> 

 

Nein, der erste Report, der von iostat ausgegeben wird, ist der Durchschnitt der Werte seit dem Systemstart. Die nachfolgenden Reporte geben der Durchschnitt der Werte seit dem letzten Report an. Du kannst dir mit "iostat 5" kontinuierlich die Durchschnittswerte über die letzten 5 Sekunden anzeigen lassen, aber das gilt dann eben erst ab dem zweiten Report.

 *iDeJ wrote:*   

> Muss ich NCQ eigentlich extra aktivieren?
> 
> 

 

Das ist alles noch ziemlich in Entwicklung begriffen. Außerdem müssen es sowohl die Festplatten, als auch die Controller als auch die Betriebssystemtreiber unterstützen. Zum aktuellen Stand unter Linux siehe

http://linux.yyz.us/sata/software-status.html und

http://linux.yyz.us/sata/sata-status.html

----------

## sschlueter

 *ChrisM87 wrote:*   

> 
> 
> Aber NCQ ist auch wohl kaum dein Problem, in der Praxis bringt das nur recht wenig.
> 
> 

 

Hehe, also ich hoffe schon, daß NCQ die Reaktionsfähigkeit der Platten bei vielen Zugriffen in kurzer Zeit verbessern kann, aber da es unter Linux zur Zeit kein NCQ gibt, heißt es für mich einfach abwarten.

----------

## Vortex375

Hui, das Problem scheint interessanter zu sein als ich dachte, wenn man sich die viele Antworten ansieht.   :Very Happy: 

 *Quote:*   

> Java und Wine bringen den Linux scheduler durcheinander. Darum macht multi-tasking damit keinen Spaß mehr.

 

Das klingt nach einer guten Erklärung für das Problem, auch wenn ich nicht kapiere wie das funktionieren kann (also dass der scheduler durcheinander kommt). Ich merke lediglich das das ganze system ingesamt etwas langsamer wird wenn java läuft, auch wenn java gerade nur 1% cpu zeit beansprucht.

 *Quote:*   

> Beim emergen dagegen hapert es an der CPU, so daß man einen hohen Wert für "user" bzw. "nice" ... sehen kann

 

Das stimmt, jedoch sehe ich dabei in top meistens so 60% user und 40% system Last (durchschnittlich natürlich).

 *Quote:*   

> Das Problem mit dem Plattenzugriff ist bei IDE prinzipbedingt besonders übel. Da kann der Kernel nichts dran ändern. Besser wird es in Zukunft mit SATA und dem Native Command Queuing.

 

Zum Glück hab ich grad ne neue SATA Platte gekauft nachdem meine alte Platte den Geist aufgegeben hat.   :Very Happy: 

 *Quote:*   

> Aber es hilft natürlich auch, ganz einfach mehrere Platten zu benutzen. Dann kann man extrem festplattenintensive Aktionen auf eine bestimmte Festplatte begrenzen, so daß beispielsweise die Systemplatte immer noch performant arbeiten kann. 

 

Das bringt aber doch nichts solange beide Platten am gleichen Controller hängen oder?

 *Quote:*   

> Wenn sich mehrere Geräte einen Interrupt teilen, mag es sein, daß eine hohe Interruptaktivität, die duch eins der Geräte verursacht wird, auch die anderen Geräte mit demselben Interrupt beeinträchtigt. Aber das sollte bei modernen Rechnern eigentlich nicht mehr so sein.

 

Bei mir liegen anscheindend der sata- und der Soundtreiber auf dem gleichen Interrupt.

```

16:     577404   IO-APIC-level  libata, EMU10K1

```

Ich merke aber nicht, dass bei hoher Festplattenaktivität der Sound ins stottern gerät. Könnte das dennoch eine Problemquelle darstellen? Lässt sich das bei einem Plug&Play BIOS überhaupt ändern?

----------

## Anarcho

 *Quote:*   

> Das klingt nach einer guten Erklärung für das Problem, auch wenn ich nicht kapiere wie das funktionieren kann (also dass der scheduler durcheinander kommt). Ich merke lediglich das das ganze system ingesamt etwas langsamer wird wenn java läuft, auch wenn java gerade nur 1% cpu zeit beansprucht. 

 

Naja, das ist recht einfach zu erklären. Wie du ja gesehen hast startet java recht viele Threads. Diese werden unter Linux wie normale Prozesse behandelt. Der CPU Scheduler verpasst jedem Prozess der im Status "runnable" ist eine Priorität und eine Timeslice, also ein Stück vom Kuchen der CPU-Zeit. 

Wenn du nun statt einem Prozess pro Applikation 20 hast, bekommen alle 20 einen Timeslice. Dadurch bleibt natürlich weniger Zeit für den Rest bzw. sie kommen seltener dran, da ja jeder Prozess einmal pro Gesamttimeslice dran kommt. 

Das ist jetzt nur grob umrissen.

----------

## iDeJ

 *ChrisM87 wrote:*   

> 
> 
> In den RAM cachen ist überhaupt nicht sinnlos, meistens brauchst du die Sachen ja nochmal, z.B. ein phpBB, das ein Avatar schreibt, ein Spiel, das ein Savegame schreibt oder Portage, das temporäre Dateien entpackt. Da wäre es ja sinnlos, das auf die Platte zu schreiben und gleich wieder zu lesen.
> 
> 

 

mit sinnlos meine ich daten in den swap zu cachen, bzw. den ram mit daten voll zu cachen die ich nur kopieren will, bzw. die eh in den Ram sollen (z.b. Spieldaten)

Ich hab mal irgendwo gelesen das man das Verhalten des Linux Kernels irgendwie beinflussen kann, war irgendwas mit swapines glaub ich, muss ich mal suchen

----------

## sschlueter

 *Anarcho wrote:*   

>  *Quote:*   Das klingt nach einer guten Erklärung für das Problem, auch wenn ich nicht kapiere wie das funktionieren kann (also dass der scheduler durcheinander kommt). Ich merke lediglich das das ganze system ingesamt etwas langsamer wird wenn java läuft, auch wenn java gerade nur 1% cpu zeit beansprucht.  
> 
> Naja, das ist recht einfach zu erklären. Wie du ja gesehen hast startet java recht viele Threads. Diese werden unter Linux wie normale Prozesse behandelt. Der CPU Scheduler verpasst jedem Prozess der im Status "runnable" ist eine Priorität und eine Timeslice, also ein Stück vom Kuchen der CPU-Zeit. 
> 
> Wenn du nun statt einem Prozess pro Applikation 20 hast, bekommen alle 20 einen Timeslice. Dadurch bleibt natürlich weniger Zeit für den Rest bzw. sie kommen seltener dran, da ja jeder Prozess einmal pro Gesamttimeslice dran kommt. 
> ...

 

Seit NPTL stimmt das nicht mehr.

Aussagen wie

 *Quote:*   

> Java und Wine bringen den Linux scheduler durcheinander. Darum macht multi-tasking damit keinen Spaß mehr.

 

sind ziemlich ungenau und müßten genauer erklärt werden. Soweit ich weiß gibt es zur Zeit keine besonderen Performance- oder Skalierbarkeits-Probleme bei NPTL.

Im Netz findet man recht viele MySQL-Benchmarks, bei denen das Multithreading des OS stark beansprucht wird. Siehe beispielsweise

http://software.newsforge.com/article.pl?sid=04/12/27/1238216&tid=72 und

http://software.newsforge.com/article.pl?sid=04/12/27/1243207

----------

## Anarcho

 *Quote:*   

> Seit NPTL stimmt das nicht mehr. 

 

Das ist schön zu hören, dann werde ich wohl doch mal umstellen. Soll ja sonst keine Nebenwirkungen haben.

----------

## iDeJ

Also, soweit ich das alles jetzt verstanden hab wäre es am sinnvollsten sich mehr Ram zu besorgen und/bzw. das Home Verzeichniss auf einer seperaten HD anzulegen, sodass ein laden/hashen whatsoever das System nicht mehr beinträchtigt

----------

## Anarcho

 *iDeJ wrote:*   

> Also, soweit ich das alles jetzt verstanden hab wäre es am sinnvollsten sich mehr Ram zu besorgen und/bzw. das Home Verzeichniss auf einer seperaten HD anzulegen, sodass ein laden/hashen whatsoever das System nicht mehr beinträchtigt

 

Solange die Daten die gehasht werden auf der 2. Platte also nicht auf der Systemplatte liegen, ja.

Manche sagen auch das der CQ Scheduler besser auf Desktop-Systemen läuft. Aber es gibt auch andere Meinungen...

----------

## Vortex375

 *Quote:*   

> Das ist schön zu hören, dann werde ich wohl doch mal umstellen. Soll ja sonst keine Nebenwirkungen haben.

 

Wie kann ich denn auf NPTL "umstellen"? Ich hab grad nachgelesen um was es sich dabei überhaupt handelt und das klingt ja wirklich nicht schlecht (soweit ich das beurteilen kann   :Wink:  ).

Ich wusste nicht, dass unter Linux alle Threads als eigene Prozesse behandelt werden. Wenn es keine Nachteile hat, warum ist dann das andere Verfahren nicht Standart?

----------

## Anarcho

Das das nur auf nem 2.6er Kernel geht ist sicher ein Grund.

Einrichten:

USE-Flag nptl und nptlonly setzen und glibc neu emergen, dann nochmal mit emerge --newuse world nachsehen was eventuell noch.

----------

## JonSnow

 *Vortex375 wrote:*   

> Wie kann ich denn auf NPTL "umstellen"? Ich hab grad nachgelesen um was es sich dabei überhaupt handelt und das klingt ja wirklich nicht schlecht (soweit ich das beurteilen kann   ).
> 
> Ich wusste nicht, dass unter Linux alle Threads als eigene Prozesse behandelt werden. Wenn es keine Nachteile hat, warum ist dann das andere Verfahren nicht Standart?

 

http://people.redhat.com/drepper/nptl-design.pdf

echo "sys-libs/glibc nptl nptlonly" >> /etc/portage/packages.use

Und dann glibc neubauen, ohne nptlonly wird glibc 2 mal gebaut mit altem und neuem "Threading".

----------

## iDeJ

und es gibt auch keine Probleme mit ntplonly!?

----------

## reptile

ich hab als einziges problemkind das spiel jagged alliance 2 gehabt, das wollte mit nptl nicht. also hatte ich nptlonly wieder rausgeworfen. da ich das aber im moment nicht mehr spiele, hab ich jetzt auch nur noch die nptl-version der glibc drin.

zu nptl in /etc/portage/package.use: da kann das nptlonly hin, weil das als einziges use-flag für die glibc existiert. allerdings muss man mono zum beispiel dann auch mit dem nptl-flag übersetzen, sonst gibts nullpointer-exceptions. woran das liegt weiss ich nicht, aber ich bin da auch schon drüber gestolpert.

----------

## Vortex375

Nur noch ne kleine Frage: Merkt man mit NTPL irgendeinen (merkbaren) Unterschied im Bezug auf bessere Performance Verteilung bei hoher Last oder insgesamt bessere Performance?

Dass es nicht die Welt bewirkt ist mir schon klar. Ich hab nur bei prelink gelesen, dass damit angeblich alle Programme (vor allem kde-anwendungen) viiiieeeel schneller starten sollen. Daraufhin hab ich prelink ganz nach der Anleitung installiert und ausgeführt (ich erhielt nur jedes mal eine Fehlermeldung wenn er gegen nvidia-glx linken wollte) aber mein system ist nicht merklich schneller geworden (bzw. die Startzeiten sind nicht merklich kürzer geworden, gerade kde oder firefox brauchen immernoch ziemlich lang).

----------

## reptile

ad 1: nein. merklich schneller geworden ist es bei mir zumindest nicht. allerdings hab ich auch ein notebook mit centrino und fahre darauf keine thread-intensiven serverdienste (apache würde mir da mal spontan einfallen). das skaliert auf einem nptl-system vermutlich besser, insbesondere auf smp-systemen.

ad 2: es gibt in /etc/env.d irgendeine datei mit KDE_IS_PRELINKED, setz die mal auf true oder auf 1. der grund dafür ist, dass kde beim start sowieso recht viel seiner bibliotheken und auch programme vorlädt (zum beispiel den konqueror). daher ist gerade dort der vorteil nicht so gewaltig. wenn man KDE_IS_PRELINKED auf true setzt, sieht kde davon ab, und startet wohl ne spur schneller. genauer beschäftigt hab ich mich damit aber nicht, benutze ein gnome-system, und ausserdem müsste man prinzipiell nach jedem update das prelinken nochmal durchlaufen lassen, um dauehrhaft vorteile draus zu ziehen.

----------

## Vortex375

Ich hab KDE_IS_PRELINKED auf true gesetzt und nach jedem world update führe ich prelink aus.   :Very Happy: 

Das gehört jetzt nicht zum Topic, aber hat prelink irgendwelche nachteile (größere Binaries oder so). Wenn das große Nachteile hat, dann deinstallier ichs wieder.  :Rolling Eyes: 

----------

## reptile

nein, grosse nachteile hats nicht. die binaries werden etwas grösser, prozentual kann ichs dir nicht sagen, hängt vermutlich davon ab, gegen wieviele bibliotheken ein programm gelinkt ist.

----------

## De Beukelaer

 *reptile wrote:*   

> nein, grosse nachteile hats nicht. die binaries werden etwas grösser, prozentual kann ichs dir nicht sagen, hängt vermutlich davon ab, gegen wieviele bibliotheken ein programm gelinkt ist.

 

IIRC werden die Datein nicht größer. Im ELV-Format sind für die Werte die Prelink einträgt schon "Lücken" vorgesehen. Darum gibt es auch manchmal wenn diese Lücken nicht da sind eine entsprechende Meldung.

----------

