Olewanie swapu

Michal Kochanowicz michal w michal.waw.pl
Czw, 30 Maj 2002, 00:38:11 CEST


On Thu, May 30, 2002 at 12:30:15AM +0200, wrobell wrote:
> Normalna sprawa, że tak powiem.
> Załóżmy, że w momencie kiedy php chce przedzielić pamięć, masz
> 3MB wolnej pamięci. Załóżmy, też, że php chce przydzielić tej
> pamięci 4MB. Oczywiście nie może. Kernel musi wywalić na swapa deko...
Pamięć (fizyczna) nie musi być dostępna w momencie wywołania malloc().
Możesz zrobić:
char *c = (char *)malloc(1024*1024*512);
i to zadziała momentalnie, nic się nie będzie swapować niezależnie ile
masz RAMu. Swapować się zacznie jak zrobisz:
while(1)
	*c++ = 0;
> ale w tym momencie już jest zapóźno. Właśnie dlatego można ustawić
Wcale nie. Jest 256MB RAM. 60 wolnych, Uruchamiam powyższy program. I
wcale się nie wywala na braku RAM. W miarę potrzeb kernel wyswapowuje
coś na dysk. Jak nie wierzysz to uruchom coś takiego:
#v+
#include <stdlib.h>

int main(void) {
	char *c = (char *)malloc(1024*1024*256);
	int i = 0;
	while(1) {
		*c++ = 1;
		i++;
		if(!(i % (1024*1024)))
			printf("%d\n", i>>20);
	}
	return 0;
}
#v-
-- 
--= Michal Kochanowicz==--==--==BOFH==--==--==michal w michal.waw.pl =--
--= finger me for PGP public key or visit http://michal.waw.pl/PGP =--
--==--==--==--==--==-- Vodka. Connecting people.--==--==--==--==--==--
A chodzenie po górach SSIE!!!



Więcej informacji o liście dyskusyjnej pld-users-pl