Toon posts:

[linux] Dubbel draaiende programma's

Pagina: 1
Acties:

Verwijderd

Topicstarter
als ik mijn server een tijdje aan heb staan draaien er altijd meerdere httpd's, licq's en netscape-commun's (als ik bij ps -A kijk)... iemand een flauw idee wat ik verkeerd doe?

Verwijderd

Het kan zijn dat programma's onder linux meerdere pids gebruikt. Of misschien heb je een foutje in de crontab die om de zoveel tijd al je programma's die lopen opnieuw uitvoerd(wat ik denk vanniet, zal heeeeel uniek zijn). Zie je de programma's zoals licq ook vaker in beeld?

  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 19-08 10:34

Aaargh!

Bow for me for I am prutser

Je doet niks verkeerd, is heel gewoon.
gewoon programma's die meerdere processen hebben lopen.
doet b.v. xmms ook, stukje uit de xmms faq:
Why does XMMS have 5-6 running instances which each takes x% of my memory, isn't 5-6*x% memory A REAL WASTE? XMMS is not using that memory for each instance, it shares the memory between the instances, so if you have 6 entries in your "ps aux" output which takes 5mb, XMMS is using 5 mb, and not 6x5mb
apache doet ook zo iets , voor elke request word er 1 instantie van apache gebruikt. standaard heeft ie een aantal 'extra' processen lopen zodat die niet hoeven te worden gestart als er een request binnenkomt (request word afgehandeld door al draaiende apache en tegelijk word een nieuwe gestart voor e.v.t. nieuwe binnenkomende requests) het aantal 'extra' servers dat draait kan je instellen in /etc/httpd/httpd.conf , zoek naar de settings:
MinSpareServers en MaxSpareServers.

Those who do not understand Unix are condemned to reinvent it, poorly.


  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 19-08 10:34

Aaargh!

Bow for me for I am prutser

Uit httpd.conf:
# Server-pool size regulation. Rather than making you guess how many
# server processes you need, Apache dynamically adapts to the load it
# sees --- that is, it tries to maintain enough server processes to
# handle the current load, plus a few spare servers to handle transient
# load spikes (e.g., multiple simultaneous requests from a single
# Netscape browser).
#
# It does this by periodically checking how many servers are waiting
# for a request. If there are fewer than MinSpareServers, it creates
# a new spare. If there are more than MaxSpareServers, some of the
# spares die off. The default values are probably OK for most sites.
#

Those who do not understand Unix are condemned to reinvent it, poorly.


  • Wirf
  • Registratie: April 2000
  • Laatst online: 18-08 17:51
Je doet niets fout, de meerdere programma's die je ziet zijn de threads die het programma maakt om dingen tegelijk te doen.

neem apache bijvoorbeeld, als er twee mensen zijn die een pagina van jou server willen hebben, dan maakt apache twee keer zichzelf aan, zodat die twee mensen tegelijkertijd kunnen worden geholpen.

het geheugen dat ze gebruiken is voor een groot gedeelte gedeeld, dus qua geheugen maakt het bijna niets uit.

snap je het een beetje? (ondanks de vage uitleg?)

edit: hmmm.... sneller typen de volgende keer

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • wouzer
  • Registratie: Maart 2000
  • Niet online
Op woensdag 10 januari 2001 16:05 schreef Wirf het volgende:
Je doet niets fout, de meerdere programma's die je ziet zijn de threads die het programma maakt om dingen tegelijk te doen.
thread? Da's iets van Windows, je zult wel gewoon process bedoelen.

  • mavink
  • Registratie: April 2000
  • Laatst online: 27-05 09:16
Nee threads. Meestal maak je onderscheid tussen twee soorten processen, namelijk heavy-weight en light-weight. De 'zware' processen een eigen adresbereik; 'lichte' processen delen hun adresbereik met een ander proces. Zeg maar het verschil tussen fork() en clone() dus.

Dit is dus een zware:
Afbeeldingslocatie: http://www2.linuxjournal.com/articles/misc/images/0033_fig1.jpg

En dit een lichte:
Afbeeldingslocatie: http://www2.linuxjournal.com/articles/misc/images/0033_fig2.jpg

Dat laatste noem je dus over het algemeen threads.

Verwijderd

Topicstarter
ah bedankt allemaal! ik snap het nu... en wel toevallig, ik kreeg ook net zo'n vermoeden omdat ik zojuist mijn server zat in te stellen (apache) :)
ben blij dat het iig klopt :)

  • Wirf
  • Registratie: April 2000
  • Laatst online: 18-08 17:51
Op woensdag 10 januari 2001 22:03 schreef wouzer het volgende:

[..]
thread? Da's iets van Windows, je zult wel gewoon process bedoelen.
is toch allebei hetzelfde, het is maar hoe je het ding noemt

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • wouzer
  • Registratie: Maart 2000
  • Niet online
Op woensdag 10 januari 2001 22:59 schreef vink het volgende:Dat laatste noem je dus over het algemeen threads.
Daarom staat er waarschijnlijk process in dat plaatje.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Allemaal:
Linux kent ZOWEL threads ALS processes!!
En je zoekt zelf het verschil dan maar uit, want dat bestaat er wel degelijk tussen.

Licq, maakt meerdere threads (ik heb er meestal minstens 5, direct na licq start)
Netscape heb ik meestal 2 threads van...
En apache start meerdere processes, pas versie 2.0 (nog in beta status) werkt met threads en/of processes

  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 19-08 10:34

Aaargh!

Bow for me for I am prutser

IIRC is het verschil met windoze dat bij Linux threads geimplementeerd zijn als processen, en onder windows zijn processen geimplementeerd als threads.

Those who do not understand Unix are condemned to reinvent it, poorly.


  • wouzer
  • Registratie: Maart 2000
  • Niet online
zoiets was 't ja... ;)
Pagina: 1