Pages

1 Ocak 2011 Cumartesi

Oracle çalışan Linux/UNIX sistemlerde “Out of memory” hatası

Linux veya UNIX sistemlerde çalışan Oracle tabanlı uygulama için işletim sisteminde paylaşımlı belleğin serbest bırakılıp bırakılmadığını kontrol etmek için alttaki programı derleyin ve çalıştırın.
 Huge pages kullanılmayan ve yoğun işlem yapan Oracle sistemler için bilhassa ideal SGA planlaması aşamasında oldukça faydalı bilgiler vermekte...

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
int main()
{
int shmid,size;
void *buf=0;
extern int errno;
/* İstediğiniz bir paylaşımlı bellek boyutu ile değiştirin(MB olarak) */
size = 200;
if ((shmid=shmget(rand()%10,1048576*size,0666|IPC_CREAT))==-1)
{
printf("Error during shmget, OS Error %d\n",errno);
exit(1);
}
if (((void *)shmat(shmid,(void *)0,0666))==0)
{
printf("shmat sırasında hata, OS Error %d\n",errno);
exit(1);
}
shmctl(shmid,IPC_RMID,buf);
printf("Başarılı şekilde bellek kullanıldı, segmente %dM paylaşımlı bellek verildi\n",size);
}
---------------------------------------------------------------------------------------------------------
$cc -o <output filename>  <program.c>

0 yorum:

Yorum Gönder