1820475 Members
2985 Online
109624 Solutions
New Discussion юеВ

Cannot allocate memory

 
Abdullatif Abdulla
New Member

Cannot allocate memory

I get the error:cannot allocate memory for UTX GSM base structure when ever users run and application which do some processesing. I processes files but sends the above error if the data fiel to process is greater than 60MB.
submitting the command swapinf -tam while the application running I got the following results but teh application fails.
swapinfo -tam
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 1024 0 1024 0% 0 - 1 /dev/vg00/lvol2
reserve - 352 -352
memory 763 544 219 71%
total 1787 896 891 50% - 0 -
t4:/home/root> r
swapinfo -tam
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 1024 0 1024 0% 0 - 1 /dev/vg00/lvol2
reserve - 367 -367
memory 763 544 219 71%
total 1787 911 876 51% - 0 -
t4:/home/root> r
swapinfo -tam
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 1024 0 1024 0% 0 - 1 /dev/vg00/lvol2
reserve - 301 -301
memory 763 544 219 71%
total 1787 845 942 47% - 0 -

maxdsiz 67108864 67108864 Max Data Segment Size (b |
|

maxswapchunks 2163 2163 Max Number of Swap Chunk |
| maxtsiz 67108864 67108864 Max Text Segment Size (b |


Is it some thing related to unix and how to fix it or I have to contact the appliction vendor.
4 REPLIES 4
T G Manikandan
Honored Contributor

Re: Cannot allocate memory

I am just pointing that the errors come from here and you should filter the cause.

The out of memory errors come up for several reasons


1.First check your memory and swap usage on the system.
if it is very high check for the memory usage by each process and try to bring them to a minimum.
2.If step 1 is ok then check the buffer cache paramters are ok.
Also check whether your application does not touch the limits of
max_files
max number of open files

max_thread_proc
max number of thread per each process.

your swapinfo command shows more amount of usage of memory

Are you running a server with 1GB memory.
Also your shared memory is set to 1GB.
What are the values of dbc_max_pct and dbc_min_pct?
These are the buffer cache parameters.


Also run

UNIX95= ps -e -o ruser,pid,vsz=Kbytes|more

during the time when you see a full memory usage by the server.

If your memory size is 1GB
you can reduce the dbc_max_pct to 20 and min_pct to 10.
These paramters define the buffer cache on the system.
By default they are half the memory on the system.
Bring them down to the specified values

Also bump up the values of
maxdsiz
maxdsiz(if the application is 64 bit)

The kernel maxdsiz value just tells the upper limit for the data segment of a process.

Increase it

Revert
Abdullatif Abdulla
New Member

Re: Cannot allocate memory

Thanks for your reply

I have K460 server with IGB mem 1GB Swap
10.20 OS
dbc_max_pct=50
dbc_min_pct=5
maxdsiz=67108864
do you agree with me to increase the maxdsiz to 134217728, and will it help?

thanks
T G Manikandan
Honored Contributor

Re: Cannot allocate memory

Yes,increase maxdsiz also you can bring down your dbc_max_pct to 25

if you are running a 64 bit application then then the 64 bit equ. of maxdsiz i.e maxdsiz_64
Abdullatif Abdulla
New Member

Re: Cannot allocate memory

Thanks and many thanks.
After the changes you recommended done the application ran successfuly.

Thanks And many thanks again.