Jump to content











Photo
- - - - -

Advise to run Win7 from RamDrive on 128 GB CAD station

ramdrive win7 respeonsiveness

  • Please log in to reply
7 replies to this topic

#1 QuEP

QuEP
  • Members
  • 4 posts
  •  
    Netherlands

Posted 10 January 2014 - 12:32 PM

Gentlemen, I’ve got an interesting question for you. It is is actually a two step question.
Can it be done (how), and maybe more important : is it advisable !?

Problem description.
I just started using a dual processor water-cooled workstation with 128 GB Ram for 3D 
modelling and rendering large factory layouts with thousands of files opened simultaneously. 
This is incredible RAM hungry and processor intensive work. Although I invested heavily 
in top notch hardware, I still feel the need to improve responsiveness of this system.  
Although the 20 cores have nicely reduced the typical render time from 10+ hours down 
to 2+ hours (nice but these are unmanned nightly hours anyway), the biggest problem 
remains the actual 3D modelling which unfortunately remains a single thread operation. 
A rebuild / save operation on the highest level can take anywhere from 10 to 30 minutes. 
This is a very big problem, because you end up not saving often enough, and therefore
 losing a lot of difficult to remember work regulary  (in practice it is so easy to make 
mistakes or getting jammed with so many files open).

Hardware description : Asus Z9PE-D8 WS Motherboard, dual Xeon E5-2690v2 processors 
with 10 cores each, 8x16GB DDR-3 RAM (1866MHz in Quad channel configuration), 
Nvidia Quadro K4000, 1TB SSD Samsung 840 EVO (for SYS and Work data), 
2x 3TB sata in Raid 1 for storage.

The slow rebuilding / saving is not a SSD speed or data file size issue. A typical large 
project only has 1 to 10 GB as data files on SSD (takes far less than a minute to 
read or save), but requires up to 50 GB of working RAM for 3D modelling and up to 
75 GB for rendering. This means rebuilding the models on screen primarily requires 
serious number crunching between processor and RAM only. For this reason I just 
upgraded the original 64 GB to the fastest 1866 MHz RAM possible. Due to the Quad 
channel configuration the next step up was 128 GB, which even for my RAM hungry 
application is over kill (normal workload is between 25 and 50 GB).

For starters I have moved the temp and back up files to a RamDisk. This seriously 
helped responsiveness, although this is difficult to quantify. The 10 GB reserved 
space is nicely cleaned up every restart, but runs out of space quickly during a busy 
modelling sessions. That made me think more about possibilities of the incredible 
fast Ram drives. 

At the moment I’m experimentally running 3D modelling data files from a 40 GB RAM drive ! 
This volatile disc is automatically saved to and opened from a mirror on the SSD during 
start up and shutdown. Due to the already fast SSD, this  seems to only add well over 
a minute to this BOOT procedure (that is absolutely nothing compared to immense 
daily lost time on rebuilds / save operations). Worried about volatility, I use GoodSync to automatically synchronise only the changed files every 15 minutes. Which so far has 
not been noticeable in performance, and no issues with locked files yet (although 
GoodSync claims to be good at retrying locked files, this remains a worry under 
investigation). Again this RAM procedure helped responsiveness a bit again, 
although still difficult to quantify. 

Installed Drives_Meter_V2.4.gadget and GPU_Meter_V2.4.gadget to see what is 
going on. You need to set monitor speed real short to see any drive action at all 
(even during 10 minute out of business rebuilt !). Now it becomes interesting : 
At 0.1 sec monitor speed you see very frequent drive action at C: (thus windows 7 
and CAD software), but never prolonged (maybe 10% of time, but not noticeable 
on 1s monitor fequence). The RAM data on the other hand peaks full seconds but 
very rarily (only at start of opening or end of saving operation).

I think this tells me two things : 
Issue 1 is bad news: most of the rebuilt time is appereantly wasted on number 
crunching which only can be speeded up by overclocking or such (processors 
do not come much faster yet). Although more difficult for XEON processors, 
there is quite some fine tuning room within this excellent Asus board 
(but a bit risqué on such expensive system, so out of the question for right 
now on this brand new system).

Issue 2 is the reason for this forum question : very frequently very small 
instructions are needed from Win and the CAD software. Windows running 
on NTSF drives is quite bad with large numbers of small files. I personally 
think / hope that running WIN + apps  from RAM will help responsiveness 
more than doing that with data files themselves (with far over 1 TB on data files 
that would require a lot of confusing drive shuffeling anyway). The CAD 
software needs to be installed on the same drive as windows. Can the 
Win7 pro 64-bit be trimmed down enough to run from RAM ? 
The RAM drive is assigned a regular letter and claims to be available early 
enough for WIN boot to be mounted. Currently the win directory is an 
astonishing 22 GB and all programs together another 20 GB. 
I could comfortably assign a 40+ GB RAM drive, but a lot of junk can 
probably be eliminated (any suggestions on cleaning / optimizing procedures ?).

The main question remains: would running Win7 from a RAMdrive be advisable ?

Although keeping the boot mirror up to date will be a headache, I honestly 
think it has some advantages too. Any system I have sofar used so intensively, 
always severely suffered from cluttered down windows installations within a 
few month of use. Really the only thing that seems to help is a rigouress 
4 or 6 times a year a system format with complete freshly installed windows 
and programs. On such large systems that is a lot of work, but improves 
responsiveness incredibly. If you keep the boot mirror clean and turn of all 
automatic updates, then you could check and run updates weekly or monthly 
(only updating the boot mirror as needed with a fresh un-cluttered but updated 
copy). Undoubtly this remains a head ache, but probably wouldn’t waste as 
much time as the 4 times or often re-installations per year now.

So … can it be done ? Do you boot specialists think it could make this thing fly faster ? Would you judge it as  advisable ? Remember with current 10 to 30  minute 
rebuilt times, you lose a lot of volatile data as well (simply because you cannot 
afford to save more often).

Sorry about this awfully long worded question, but this might not be run of the
 mill system management or gaming performance for most specialist. 
Although on the other hand, there must be more idiots like me suffering from 
long rebuilt times.

Thanks for your time, any help will be appreciated !

My sincere excuses for the cluttered tekst. I had this text written seperately in Word, and could not get the Word or regular paste icons to function properly . I only managed to paste it as unformatted code.



#2 bblaauw

bblaauw

    Frequent Member

  • Advanced user
  • 105 posts
  •  
    Netherlands

Posted 10 January 2014 - 08:46 PM

Booting Windows into RAM might be possible, but I haven't looked into this, sorry. Alternatives might be some enterprise system like FusionIO, ZeusRAM or the Texas Memory Systems RAMSAN products. I don't know if these are bootable.

 

sells a technically outdated hardware Ramdisk up to 64GB, but it's over bootable SATA. bootable Flash on PCIe seems to be arriving just now to bypass SATA's IO and bandwidth limitations. (bootable) DRAM units on PCIe seems nearly non-existing. Last but not least there's SATADIMM.



#3 wimb

wimb

    Platinum Member

  • Developer
  • 2554 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 11 January 2014 - 06:44 AM

Can the Win7 pro 64-bit be trimmed down enough to run from RAM ? 

 

Answer is Yes. :)

 

You need to Install FiraDisk driver in fresh installed x64 Win7 Source (Drive or VHD)

and then use VHD_W7_Compact.exe to make New VHD of reduced size e.g. 2.5 GB 

The new VHD has the same registry as original x64 Win7 but has limited number of files,

so that it just behaves as normal as the original x64 Win7 OS

 

x64 Win7 of Size 1.8 GB is booting from 2.5 GB RAMDISK loaded via Grub4dos Menu

 

http://reboot.pro/to...ct-make-mini-7/

http://reboot.pro/to...-22#entry150248

 

:cheers:

 

This picture shows the reduction in folder size in 1.8 GB x64 Win7 (2.5 GB VHD drive C:) as compared to Source Drive D:

 

VHD_7x64_Fira.png



#4 QuEP

QuEP
  • Members
  • 4 posts
  •  
    Netherlands

Posted 11 January 2014 - 07:37 AM

Both gentlemen, thanks for the excellent suggestions !

bblauw gave me a lot of hardware related leads to investigate. Sounds like i'm just a bit early for this topic, but that I'm not the only one looking into its possibilities ;-). This might be the safest route, since this high end CAD software is very sensitive for Windows tinkering by other applications. It is not as bad as it used to be, but it is still far safer not to install any games and as little as possible programs on serious workstations like this ;-).

 

The Firadisk / GrubDisk menu route and links of WimB sound very promising and tempting though ! I wouldn't have to trim down Win7 that far, but anywhere under 8GB would be nice. I only hastily read through your excellent links WimB , but do I understand correctly that you still need to keep the full Win installation available on another drive for live ( automatic ? ) references of missing files or such ? Somewhere you did refer to the possibility of using this procedure on a RAM disk. By the way, you are quite welcome to use this workstation as experiment for that purpose. I have an identical sized d: disc installed only for a Norton Ghost backup of the system (so fairly safe to experiment a bit).

 

Very tempting to immidiately be diving heads on into these very interesting matters with huge potential. I read somewhere that they start running complete network servers from multiple 256 GB RAM drives. I can see why, because this DDR-3 1866 MHz is so much faster as the fastest RevoDrives or incredibly expensive high end server SSD solutions, and relatively cheap. In my case I only need the 128 GB installed RAM sometimes at the end of some Multi week projects. I might as well put it to work in the mean time ;-).

 

I'm very much behind on a big project, for which I need to put in a lot of hours this weekend. So tempting or not, looks like too much study and experiment material for this weekend. But I defenitely will dive in to these possibilities more in depth shortly.

 

Thanks Guy's, I will keep you posted !



#5 wimb

wimb

    Platinum Member

  • Developer
  • 2554 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 11 January 2014 - 10:32 AM

VHD_W7_Compact.exe will make Universal VHD files that can be copied and used on any system.

Run first VHD_W7C_drivers.exe plugin to add useful extra drivers to makebt\drivers folder.

 

It means you can keep such VHD files in stock as spare part and in fact the computer is reduced to 1 file.

You can use an USB-stick as Boot Drive and boot the VHD file located on internal harddisk (NTFS System Drive) 

In this way fast loading of RAMDISK is obtained and there are no changes needed of your System.

 

Use UFD_FORMAT.exe to make USB-Stick bootable with Boot Manager Menu.

http://reboot.pro/to...140-ufd-format/

Use UEFI_MULTI.exe to make any other HDD or USB drive bootable with the selected VHD file.

http://reboot.pro/to...boot-usb-drive/

 

Although not needed, but it can be handy to have the full Win7 available in case you encounter some missing files,

which can be added then easily by using e.g. FreeCommander which has Compare and Synchronize menu.

 

Use Grub4dos boot menu to select the VHD file which will be used to load a RAMDISK (can take few minutes).

x64 Win7 is booting and running extremely fast from RAMDISK.



#6 QuEP

QuEP
  • Members
  • 4 posts
  •  
    Netherlands

Posted 12 January 2014 - 07:01 AM

Ok great ... I'm surely going to give this exciting possibility a try.

I better allocate some serious time for this, because I have a lot of studying to catch up.

But with soo much in-depth discussions and tutorials as starting point, I should be able to find enough basic info about the used applications.

 

Thanks a lot WimB !!!

Nice forum also.



#7 sbaeder

sbaeder

    Gold Member

  • .script developer
  • 1338 posts
  • Location:usa - massachusettes
  •  
    United States

Posted 13 January 2014 - 10:13 PM

My own opinion is more in line with the other posted question: Is it "worth it"?

 

I doubt you will get a lot of speedup here.  I would look to lower level benchmarking - evenb to the level of how the cache is structured on the processor chip you're using...While the Specs say 25MB, that is really 2.5 MB per core.  I might turn off hyperthreading here, since the two threads on a given core may compete...

 

But the real issue is cache misses at the L1 and L2 level as well as the L3 level....Lets say you have a piece of code in some sort of a loop, and it causes an L1 cache miss each cycle...While it is OK to focus on the RAM to disk issues (i.e. why you want to look at a RAM drive), remember that there is a longer chain involved...

 

                  Instructions (or Data) in processor  <- L1 <- L2 <- L3 <- RAM <-Paging file.

 

And all of that happens before we even go to the file system, etc...

 

My guess is that Hyperthreading and/or poor design of your application is causing some sort of thrashing on the cache, and getting some lower level stats on that may help you pinpoint...(Not sure how in Windows to do this...In Linux, I'd use DTrace stuff from the Kernel)...

 

Good Luck.



#8 QuEP

QuEP
  • Members
  • 4 posts
  •  
    Netherlands

Posted 14 January 2014 - 12:14 AM

Thanks sbaeder, I know you are right about the cache being poorly managed.

Unfortunately my main CAD software (3D SolidWorks) doesn't run on Linux or Unix.

I only ran this computer on Hyperthreading during its first day. Most of my personal working time is lost waiting for single thread rebuilt or save operations. Although in reality it bounces from one core to another, there are Always plenty cores available on 0% capacity for new threads. Nothing to be gained there, defenitely not worth the added overhead. Usually you see several cores flashing up until one hits 100% for several seconds (during which the rest comes to halt apart from some low level windows related overhead). With Hyperthreading active you can clearly see that the same happens put capped on 50%. So 39 threads are idle waiting for that 50% to finish up.

 

I'm afraid I'm way over my head lost in Cache management. With the immense data set I work with, I fail to see what 2.5 Mb can really do. But yes I agree, the biggest problem might be the many small repeating instruction sets from the sotftware. Doubt if it can be influenced from within the software. I was hoping to put the whole application folder (4.7 GB and 12000 files) on the RAM disk, but  that migh only be possible if Windows is residing on the same Disk. That is what started this search and topic.

Vaguely heard something before about forcing the Paging file on a RAM disk.

 

Looks like I need to study up on this.







Also tagged with one or more of these keywords: ramdrive, win7, respeonsiveness

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users