[CentOS] top and allocation issues

Michael D. Berger

m_d_berger_1900 at yahoo.com
Thu Mar 3 19:21:55 UTC 2011


In a context where exceptions are caught, I ran
the fragment:

   cerr << "allocating" << endl;
   char*    arr[100];
   for (int jj = 0; jj < 10; ++jj)
   {
      cerr << "jj = " << jj << endl;
      arr[jj] = new char[2000000000];
      sleep (30);
   }
   sleep (10);
   for (int jj = 0; jj < 10; ++jj)
      delete[] arr[jj];
   cerr << "deleted" << endl;

The exception was caught with jj = 1, i.e., on the second allocation.

But on top, I see:

top - 14:08:46 up  5:21, 10 users,  load average: 0.04, 0.06, 0.08
Tasks: 158 total,   1 running, 157 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.7%us,  2.0%sy,  0.0%ni, 94.5%id,  0.6%wa,  0.1%hi,  0.1%si,  
0.0%st
Mem:   1941908k total,  1231804k used,   710104k free,   138372k buffers
Swap:  3899384k total,        0k used,  3899384k free,   876020k cached

and the "710104k free" suggests that I should have failed on the first
allocation.  Furthermore, the allocation did not alter the values
in top (except for a little jitter).

Wherein do I err?

[~]$ uname -a
Linux xxxxx 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:53:09 EST 2011 i686 
i686 i386 GNU/Linux

Thanks,
Mike.




More information about the CentOS mailing list