Toon posts:

[Slackware 8.1/Kernel 2.4.20] non-SMP applicaties.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hier een aantal applicaties die niet SMP enabled zijn, achja, ik ga het niet even zelf coden ;)

Maar ik hoorde van een vriend van me dat je met LINUX kan zeggen van:

"Hey dat process draait standaard op de CPU0..."
"En die op CPU1..."

Maar hoe maakt men dit mogelijk? Ik start de applicatie gewoon door "./applicatie" te doen, en dan draait het in de background...

En search leverde hier niks op, alleen onder W2K |:(

(Google deed het ook niet zo lief, maar als iemand wel een goede "search-phrase" voor me heeft graag!)

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 19:28

odysseus

Debian GNU/Linux Sid

Je kunt eens zoeken naar 'cpu affinity' (al is dat meest 2.5-werk). Er zijn meen ik wel mogelijkheden om een programma op één CPU te locken, maar je hebt kans dat je dan wel aparte patches moet installeren. Het is ook niet zo heel erg nuttig, aangezien de kernel wel voor je uitvogelt waar een proces het best kan draaien :).

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Niet SMP enabled zijn van je applicatie betekent niet dat die applicatie alleen de eerste
CPU ziet , maar betekent dat de applicatie niet van beide CPU's tegelijk gebruik kan maken.
Het process draait dus op een van de beide CPU's

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:17
u_nix_we_all schreef op 17 February 2003 @ 15:00:
Het process draait dus op een van de beide CPU's


En zelfs dat is niet eens helemaal correct gezegd.

Het proces draait op een van beide CPU's tegelijkertijd (okee, dat zeg je eigenlijk ook, maar om het even heel duidelijk te stellen). Als Linux dat toevallig beter uitkomt op een gegeven moment, kan 'ie een proces moven naar de andere processor. Daar merkt het proces zelf volstrekt niets van.

Dat een programma 'SMP-enabled' is, wil slechts zeggen dat het eigenlijk van meerdere processen of threads gebruik maakt, zodat Linux zaken van hetzelfde programma over meerdere processoren kan verdelen, wat (dat is natuurlijk het idee), de performance ten goed komt.

Maar het 'binden' van een proces aan een vaste CPU is voor normaal gebruik volstrekt nutteloos - sterker nog: dat wil je niet. Tenzij je precies weet waar je mee bezig bent en er zeker van kunt zijn dat jij het beter weet dan de taskscheduler van Linux, zou je hiervoor kunnen kiezen.

Voor normale stervelingen zoals wij (iig ik, om maar voor mezelf te spreken ;) ) is dat dus niet aan de orde.

Duidelijker zo?

[ Voor 16% gewijzigd door Wilke op 17-02-2003 15:18 ]


Verwijderd

Topicstarter
Kijk, het is een gameserver "hlds" draait maar alleen op CPU0, nu wil ik dat stuk of 4 gameservers op CPU1 komen te draaien, aangezien top (en ook andere) gewoon zeggen dat CPU0 bijna 80% doet, en CPU1 0% omdat 'hlds' even niet zo lief is om 2 processoren te "afwisselen"...

Zodat ik dus mooi SMP kan gebruiken, aangezien we nu 3 dual systemen hebben staan is het handig dit te weten...

Maar is het nu duidelijker vanaf mijn kant? :)

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 19:28

odysseus

Debian GNU/Linux Sid

Als je meerdere draaiende processen hebt en je kernel ondersteunt SMP (lijkt er wel op als je individuele loadpercentages kunt krijgen), dan zouden die procesen automatisch verdeeld moeten worden. Dat gebeurt dus niet, of heb je dat nog niet geprobeerd?

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:17
Heb je wel SMP support in de kernel zitten idd? Wat zegt 'cat /proc/version'?

Als het om verschillende processen gaat zal Linux ze als het goed is gelijkmatig verdelen. Daar hoef jij je zelf helemaal niet druk over te maken. Als dat niet werkt, klopt er iets niet :)

Verwijderd

Topicstarter
Ja, ik heb het in de kernel zitten...

Maar het gaat er om, dat 'hlds' zelf gewoon zegt: "JE MOET OP CPU0 DRAAIEN"

En dat CPU1 dus niks doet, dat wil ik veranderen door 1 hlds of 2 ervan op andere proc wil zetten.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 19:28

odysseus

Debian GNU/Linux Sid

Kan hlds dan invloed uitoefenen op de kernel door te zeggen op welke CPU hij wil draaien? Lijkt me stug, dat is niet iets wat aan programma's zelf is om te regelen...als je er nu eens bijvoorbeeld tien start, wordt er dan op een gegeven moment wel iets naar de tweede CPU verzet?

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Topicstarter
Nee, niks... :'(

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:57

deadinspace

The what goes where now?

Als je andere CPU-hongerige processes start (ik noem maar wat, cat /dev/zero > /dev/null), draaien die dan wel op verschillende CPU's?
Pagina: 1