[linux] Re: twee processoren en Linux - sched_setaffinity

Folkert van Heusden folkert op vanheusden.com
Wo Dec 28 17:44:11 CET 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> > > Ik ben geen expert op het gebied van taken aan een processor toewijzen
> > > maar opnieuw uit eigen warnemingen lijkt het niet mogelijk om als je
> > > bijvoorbeeld naast VMware 2 andere zware (processor intensieve)  taken
> > > hebt de taak van VMware op 1 processor te beperken en de rest op de
> > > andere.
> > Jawel: sched_setaffinity
> Ik heb eens gezocht bij Google en ziie alleen dat het een functie is
> bij gebruik in C. Hoe ziet een "real" world gebruik er dan uit? Hoe
> kan ik ervoor zorgen dat bijvoorbeeld mijn apache alleen maar van CPU
> 2 gebruik mag maken en de rest op CPU 1 moet blijven?

Ok. Het stukje code dat hieronder volgt heb ik nu even uit de losse pols
ingeklopt dus het is maar de vraag of het werkt of zelfs compileerd maar
het is als voorbeeld.

#include <sched.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main(int argc, char *argv[])
{
	pid_t pid;
	int procnr;
	unsigned long mask = 1;

	if (argc != 3)
	{
		fprintf(stderr, "Usage: %s pid procnr\n", argv[0]);
		fprintf(stderr, "procnr starts at 0(!)\n");
		return 1;
	}

	pid = atoi(argv[1]);
	procnr = atoi(argv[2]);

	if (procnr)
		mask <<= procnr;

	if (sched_setaffinity(pid, sizeof(unsigned long), &mask) == -1)
	{
		fprintf(stderr, "sched_setaffinity error: %s\n", strerror(errno));
		return 2;
	}

	printf("done\n");

	return 0;
}


Folkert van Heusden

- -- 
Try MultiTail! Multiple windows with logfiles, filtered with regular
expressions, colored output, etc. etc. www.vanheusden.com/multitail/
- ----------------------------------------------------------------------
Get your PGP/GPG key signed at www.biglumber.com!
- ----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iIMEARECAEMFAkOywNo8Gmh0dHA6Ly93d3cudmFuaGV1c2Rlbi5jb20vZGF0YS1z
aWduaW5nLXdpdGgtcGdwLXBvbGljeS5odG1sAAoJEDAZDowfKNiuLJMAn1JnymcM
MPIu3fe3sHLkdF8VYL5QAJ4mY/aYazRzeu31+FB0xXEOM3dUDw==
=WGdF
-----END PGP SIGNATURE-----



More information about the Linux mailing list