BookmarkSubscribeRSS Feed
RamKumar
Fluorite | Level 6

When I tried to create charts (bar/pie) in SAS EG I got error as

ERROR: Unable to allocate sufficient memory. At least 469K bytes were requested, but only 45K were available. You must either

       increase the amount of memory available, or approach the problem differently.

ERROR: Driver SASGDGIF will not load.

It went vain when I tried to increase the memsize=512k (options memsize=512k). I did ran the below code and found that MEMSIZE=4294967296 is allocated for my ID. Any ideas\tips to create charts in SAS EG?

10 REPLIES 10
Kurt_Bremser
Super User

memsize is an option that can only be set at initialization. So you do it either on the commandline when starting SAS or, in the case of the workspace server, in a configuration file (sasv9_usermods.cfg in the WorkspaceServer directory).

Which code did you run?

RamKumar
Fluorite | Level 6

I ran it in SAS EG as soon as I start my session.

see the log below.

options memsize=512k;

                   _______

                   30

WARNING 30-12: SAS option MEMSIZE is valid only at startup of the SAS System. The SAS option is ignored.

RamKumar
Fluorite | Level 6

I ran your code and found MEMSIZE=4294967296. Please suggest how to increase the memsize via command line.

Kurt_Bremser
Super User

Since you have 4GB of memory available through the SAS configuration, I suspect that other limits come into play.

If you have the option of running system calls (no NOXCMD on the workspace server), you can do:

filename oscmd pip "ulimit -d";

data _null_;

infile oscmd;

input;

put _infile_;

run;

You will find the data size limit imposed by the operating system in the log.

Could you also post the code for the chart, and info about the data?

RamKumar
Fluorite | Level 6

Thanks again for your swift response.

I did ran your code in SAS EG and got the error as follows.

15         filename oscmd pip "ulimit -d";
ERROR: Invalid device type.
ERROR: Error in the FILENAME statement.
16        
17         data _null_;
18        
19         infile oscmd;
20        
21         input;
22        
23         put _infile_;
24        
25         run;

ERROR: No logical assign for filename OSCMD.

Please see my code (and log) below to create charts.

proc univariate data=sashelp.class;
16               var age height;
17               histogram age;
18            run;

ERROR: Unable to allocate sufficient memory. At least 469K bytes were requested, but only 45K were available. You must either
       increase the amount of memory available, or approach the problem differently.
ERROR: Driver SASGDGIF will not load.
ERROR: Device was not specified.
ERROR: Unable to load graphics.

I'm getting the same error when I tried to produce chart (in EG) manually from the SAS dataset.

Kurt_Bremser
Super User

Typo by me.

It should be

filename oscmd pipe ....

Please try that.

Just ran your code with my memory restrictions (MEMSIZE=201326592, 192 MB) all right.

The error is not data/procedure driven (since the dataset has only 19 obs and therefore max 19 distinct values), you really have a problem loading the graphics driver.

RamKumar
Fluorite | Level 6

Now got this error.

filename oscmd pipe "ulimit -d";
ERROR: Insufficient authorization to access PIPE.
ERROR: Error in the FILENAME statement.
16        
17         data _null_;
18        
19         infile oscmd;
20        
21         input;
22        
23         put _infile_;
24        
25         run;

ERROR: No logical assign for filename OSCMD.





























Kurt_Bremser
Super User

That simply means that you operate under the NOXCMD commandline option.

Next, try

options maxmemquery=6MB;

as described in SAS note 13920 before running the step again.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 10 replies
  • 3869 views
  • 0 likes
  • 2 in conversation