BookmarkSubscribeRSS Feed
Haris
Lapis Lazuli | Level 10

I set my MEMSIZE to MEMSIZE=MAX on a Windows LOCAL server with 32GB of RAM and almost 300GB free on the primary system SSD. 

 

However, DATA step with hash objects terminates when virtual memory file reaches 57GB.  Why is that?  Is that a hardware limit or can virtual memory not exceed two times the RAM?  What else can I do to increase the size of available virtual memory?  I am only dealing with a 3GB dataset of 1M records.  That's not that big.

 

I have much more space than 57GB on the primary SSD and, additionally, I have a 4TB secondary HD on the system.

 

Thank you in advance.

4 REPLIES 4
Haris
Lapis Lazuli | Level 10
I know, Kurt. The question is not about Hash Objects, though.

I think I figured out the source of the limit. It was the Windows Virtual Memory setting which, by default is equal to the RAM size. In my case 32GB of RAM was matched to 33GB of Virtual Memory auto-allocated by Windows. That's about 64GB, of which, 57GB was available to SAS.
Ksharp
Super User

Try -memsize 0  .

 

and run

proc options option=memsize;run;

to check the available memory size assigned for sas.

Haris
Lapis Lazuli | Level 10
My understanding of documentation is that MEMSIZE=0 and MEMSIZE=MAX are equivalent, no?

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1037 views
  • 3 likes
  • 3 in conversation