| PLEX86 | ||
|
LINUX Server Reboot Frequency 7373
This used to be true, but no longer. Large chunks are given back to the system. This program: what do these names stand for 7375 Variable data. Traditionally Unix has been arranged so that andusr could be mounted read-only, so... main() { char *p = malloc(1024*1024); free(p); p = malloc(1024*1024); free(p); p = malloc(1024*1024); free(p); } mmap2(NULL, 1052672, PROTREADPROTWRITE, MAPPRIVATEMAPANONYMOUS, -1, 0) = 0xb7ed5000 munmap(0xb7ed5000, 1052672) = 0 mmap2(NULL, 1052672, PROTREADPROTWRITE, MAPPRIVATEMAPANONYMOUS, -1, 0) = 0xb7ed5000 munmap(0xb7ed5000, 1052672) = 0 mmap2(NULL, 1052672, PROTREADPROTWRITE, MAPPRIVATEMAPANONYMOUS, -1, 0) = 0xb7ed5000 munmap(0xb7ed5000, 1052672) = 0 I do not know if unlimited free memory can be held if the program issues many small mallocs and then frees them Glibc tries to give back some memory if it has much free. However, this is not always possible. Smaller chunks are allocated by growing the data segment (or bss?), and if the last chunk is in use, it cannot create holes in the memory map. I guess Oracle does not use Glibc's malloc and free, but implements its own memory management. It is quite possible that Oracle is optimized for "owning" the computer. If memory at some point is available, why give it up and later perhaps not get it again? Better keep it. Let the other programs have the trouble. LINUX Server Reboot Frequency 7374 And what does "free" say? Orproc-meminfo, when doing such large allocations? OK, so you'd have to do... -Enrique
|
||||
LINUX Server Reboot Frequency 7374 Linux groups from Newsgroups The #1 Usenet Provider on the Internet
|
||||