Jump to content

[HOWTO - RAMDRIVE] Increasing SWTOR System Performance


Lemon_King

Recommended Posts

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

Awesome guide I must say!

 

After some checking and seeing the ramdrive stays filled at the same amount i reduced the amount of the ramdrive to 1.5GB. So far after a couple of hours playtime it still runs smoothly and didn't run into any problems.

 

imdisk -a -s 1500M -m T: -p "/fs:ntfs /q /y"

 

And if I may ask, does someone know how to edit it further that the volume name is also changed to for example "RAMDISK"? (Guess this needs to happen at the format command).

 

Thnx in advance,

Ocmer_

Link to comment
Share on other sites

Sadly, I don't notice much of a difference with this tweak. Could be because I already have the game and the OS on an SSD. That or maybe more likely it would need a longer playtime, as initial load still happens from the files.

 

That is, logging in and speeding around the fleet is still choppy when comin near groups of people. But I'm sure it helps slightly at least, so I'm keeping this :)

 

I implore you, look into this more if you have time. I do see a noticeable difference just with the arena cache. If I'm right and getting more of the 'problem' assets into a RAM drive is possible, this might save the game for me until they pull off a real fix.

 

I was looking at this yesterday, logging in and cruising around the fleet trying to identify the most used assets. Here's a sample of my disk usage shortly after login: http://i.imgur.com/9LWBr.jpg

 

That is not all of them however. I guess I could conclude that pretty much all of those assets got read at times, except for the planets (although the three starting planets did, for some weird reason).

 

So I gave it a try, dumping most of them on a 8GB ramdrive and making links. After that, I still got stutter while speeding around the fleet. However, I couldn't fit all of them as I don't want to spare more RAM than that. But I did include the most used ones, such as the main_art_dynamic ones. These ones, specifically.

 

I'm not sure if adding more of them would have helped, or if it's actually not a disk usage issue as I do have an SSD after all.

 

And if I may ask, does someone know how to edit it further that the volume name is also changed to for example "RAMDISK"? (Guess this needs to happen at the format command).

 

Adding "/V:VolumeName" to the format command should work, so the whole line would become:

 

imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y /V:RAMDISK"

Edited by Dyaheon
Link to comment
Share on other sites

so at each reboot the cache is wipe ?

 

If you are using ImDisk Virtual Disk you can save the image file of your T: drive that was created and just reload it at next boot up, only need to run the script once that way and the DiskCacheArena file is saved in the process. Just remember to save the image each time before you power off or reboot your computer.

 

 

ETA: You can find the user interface in Control Panel.

ETA2: You script kiddies could probably make one to do this also ;)

Edited by SIMJEDI
Link to comment
Share on other sites

So I gave it a try, dumping most of them on a 8GB ramdrive and making links. After that, I still got stutter while speeding around the fleet.

 

That is pretty sad. I was considering this option too. :|

Edited by Rogoo
Link to comment
Share on other sites

To backup an to an image it seems you need a lil program called RawCopy. (also on the webside of imdisk http://www.ltr-data.se/opencode.html/)

rawcopy -mld \\.\T: C:\ramdisk.img

 

To mount back the image as a RAMDISK you have to use the command:

imdisk -a -t vm -f C:\ramdisk.img -m T:

There is no need of formatting...

 

I did not confirm this yet, I only found a lil FAQ of the creator somewhere on the web that explained about creating an image and reloading this image.http://reboot.pro/15593/

Edited by Ocmer_
Link to comment
Share on other sites

Does the game use the normal windows virtual memory in any way? (aka the pagesys file who's size and location you can set up in controlpanel, system, advanced settings).

 

As i understand its sometimes used to "judge speed" for some programs even tho the programs dont actually store data there. So either completely removing the file or moving it to a secondary SSD might in theory boost your system? But then again there might be troubles if the game need the function? Logical there might be a speed boost as well if the game and pagesys file is on different physical drives .. so perhaps its actually better to just have the pagesys file on a secondary SSD and then have the game files on your primary hdd/ssd?

Link to comment
Share on other sites

Adding "/V:VolumeName" to the format command should work, so the whole line would become:

 

Yup it worked, thanks! I am still using 1.5GB as ramdrive with no problems at all. Just wanted to spare some ram as I only have 6 gigs.

 

imdisk -a -s 1500M -m T: -p "/V:RAMDISK /fs:ntfs /q /y"

1.5GB with volume name 'RAMDISK'.

Edited by Ocmer_
Link to comment
Share on other sites

Ocmer, with how SWTOR handles DiskCacheArena if its missing there is no real reason to back it up - As the client zeros out all non header data in the file when you close SWTOR.

 

Side Note: ImDisk is perfectly capable of saving its own data to an Image. ;)

Edited by Lemon_King
Link to comment
Share on other sites

Looks like it (I don't have the issue so I cannot confirm this will work)

 

=> http://www.swtor.com/community/showpost.php?p=2135445

 

I do not have any folders named EA / BioWare / Origin or the like, is that just a junction to my install directories settings folder?

 

Also, I'm not familiar with mlink, if I wanted to list the junctions already created how would I do so? I couldnt find any mlink /help etc commands.

Link to comment
Share on other sites

Ocmer, with how SWTOR handles DiskCacheArena if its missing there is no real reason to back it up - As the client zeros out all non header data in the file when you close SWTOR.

 

Side Note: ImDisk is perfectly capable of saving its own data to an Image. ;)

 

Ah ok, was reading this thread and it came up somewhere to create a backup and load it. (I was also just curious for further use of this ramdisk). Strange tho that on the faq / how-to of the creator says you should use rawcopy. Can you give me the command then for imdisk to create and backup image? (or I don't really get the -f flag yet :p )

Edited by Ocmer_
Link to comment
Share on other sites

I used mrkitethreeeight's method at http://www.swtor.com/community/showpost.php?p=1965652

 

I am getting the cannot find \launcher.exe error

 

I'm not sure what to do.

 

If it helps, when I go to regedit and try to navigate to "hklm\software\wow6432node\bioware\star wars-the old republic" I notice that I can get to the "hklm\software\wow6432node\" but then there is no bioware folder.

 

Doing a search in regedit finds my SWTOR launcher files in other places like "HKEY_USERS\S-1-5-21-2122706955-377316012-2677261142-1001\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"

 

Ideas?

 

note: my actual launcher file is located at

C:\Games\Star Wars-The Old Republic\launcher.exe

 

Did you install the game in the normal fashion? Also, if your OS is 32-bit, you need to look in hklm\software\bioware. You may still have a wow6432node key on a 32-bit OS but there should be almost nothing in there.

 

 

two questions, everytime I run the bat file it asks me if I want to format the disk, is this needed?

 

Also how do I go about running SW without this?

 

Are you using imdisk or starwind?

 

 

Ah ok, was reading this thread and it came up somewhere to create a backup and load it. (I was also just curious for further use of this ramdisk). Strange tho that on the faq / how-to of the creator says you should use rawcopy. Can you give me the command then for imdisk to create and backup image? (or I don't really get the -f flag yet :p )

 

As far as I can tell, the -f / -F flag allows you to specify a file or device to use as the "backing store" for the ramdisk. My guess is this is similar to the way enterprise level RAMSANs are implemented, where the permanent storage is a normal disk array behind the ramdisk. Try it, I bet it'll work. Frankly, though, for the nominal amount of data being loaded it's probably not worth it.

Edited by mrkitethreeeight
Link to comment
Share on other sites

Is there really a performance benefit to doing this?

 

How is using extra ram for a ramdrive really that different than just letting the OS use extra ram for a file cache, especially with writeback caching enabled on the drives?

 

 

I used procmon to monitor file access, and I don't see it touching the cache files on my drives much. This is with 8gb of ram, btw.

 

I did consider doing this myself after I upgraded to 8gb of ram, but after using procmon to look at how often it was touching these cache files... I just opted to move them to my SSD drive instead.

 

EDIT: I just doublechecked again via procmon, and this just doesn't look like this would be a performance issue to me. Probably because I'm not having performance issues. I dunno. I'd recommend just having more ram than you need, and enabling writeback caching on all your drives along with disabling OS flushing. Go ahead and disable Superfetch while you're at it, too.

 

The issue here should be reads, not writes. Writes to these files will typically occur during the load screen. Reads, on the other hand, are burst occurrences as you traverse the environment. I ran procmon for about 10 minutes this morning and gathered some interesting info - in the short time I moved from my ship to Tatooine and ran about, the DiskCacheArena file accounted for 20% of reads (19k ops, 618MB) and 90% of writes (17k ops, 1500MB) processed by swtor.exe and 3.5 seconds of disk time out of the 351 seconds of disk time contained in the trace. Again, write occur mostly during load screens so we probably don't care much about those in the context of this thread.

 

All operations to DiskCacheArena had the non-cached IO flag set. I'd like to see whether that's true for non-ramdisk installs, because I suspect that option is set by the application code (FILE_FLAG_NO_BUFFERING). This would eliminate the "extra RAM as a file cache" scenario. File caching can be a bad thing during large reads / writes due to the extra operations it requires (copy from disk to system cache, from system cache to process)

Edited by mrkitethreeeight
Link to comment
Share on other sites

 

Quote:

Originally Posted by Vidneras

I used mrkitethreeeight's method at http://www.swtor.com/community/showpost.php?p=1965652

 

I am getting the cannot find \launcher.exe error

 

I'm not sure what to do.

 

If it helps, when I go to regedit and try to navigate to "hklm\software\wow6432node\bioware\star wars-the old republic" I notice that I can get to the "hklm\software\wow6432node\" but then there is no bioware folder.

 

Doing a search in regedit finds my SWTOR launcher files in other places like "HKEY_USERS\S-1-5-21-2122706955-377316012-2677261142-1001\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache "

 

Ideas?

 

note: my actual launcher file is located at

C:\Games\Star Wars-The Old Republic\launcher.exe

 

 

Did you install the game in the normal fashion? Also, if your OS is 32-bit, you need to look in hklm\software\bioware. You may still have a wow6432node key on a 32-bit OS but there should be almost nothing in there.

 

Hi, thanks for replying. My OS is 64 bit, that's why I thought it should be there.

 

I installed the game via digital download, and did the normal install all except for changing the default install location to c:\games

Link to comment
Share on other sites

First off, GREAT posts! Thanks for the excellent tips.

 

One small change for the "all in one" batch file from mrkitethreeeight:

 

@ECHO OFF
:SETVARS
for /F "skip=2 tokens=3,*" %%i in ('reg query "hklm\software\bioware\star wars-the old republic" /v "Install Dir"') do set installloc32=%%j
for /F "skip=2 tokens=3,*" %%i in ('reg query "hklm\software\wow6432node\bioware\star wars-the old republic" /v "Install Dir"') do set installloc64=%%j
IF NOT DEFINED installloc32 IF NOT DEFINED install[color="Red"]l[/color]oc64 GOTO ERRnoinstloc
IF DEFINED installloc32 IF DEFINED installoc64 GOTO ERRinstloc
IF NOT DEFINED installloc32 set installloc=%installloc64%
IF DEFINED installloc32 set installloc=%installloc32%

:COPY
IF NOT EXIST "%installloc%\swtor\retailclient" (xcopy "%localappdata%\swtor\swtor\settings" "%installloc%\swtor\retailclient" /E /I && ren "%localappdata%\swtor" swtor-orig)

:MKDRIVE
IF EXIST t:\ GOTO MKFOLDER
imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y"

:MKFOLDER
IF EXIST "t:\swtor\swtor\retailclient" GOTO MKLINK1
mkdir t:\swtor
mkdir t:\swtor\swtor

:MKLINK1
IF EXIST "%localappdata%\SWTOR" GOTO MKLINK2
mklink /J "%localappdata%\SWTOR" "T:\SWTOR"

:MKLINK2
IF EXIST "T:\swtor\swtor\settings" GOTO MKLINK3
mklink /J "T:\swtor\swtor\settings" "%installloc%\swtor\retailclient\settings"

:MKLINK3
IF EXIST "T:\DiskCacheArena" GOTO LAUNCH
ren "%installloc%\swtor\DiskCacheArena" DiskCacheArena-orig
mklink "%installloc%\swtor\DiskCacheArena" "T:\DiskCacheArena"

:LAUNCH
set installdrive=%installloc:~0,2%
%installdrive%
cd %installloc:~2%
start "" "%installloc%\launcher.exe" /MIN
GOTO EOF

:ERRinstloc
@ECHO ON
@ECHO "Hmm, you seem to have two installation folders. Better post in the SWTOR forum!"
@ECHO OFF
PAUSE
GOTO EOF

:ERRnoinstloc
@ECHO ON
@ECHO "I can't find your installation folder! Sorry!  Post in the SWTOR forum if you have questions."
@ECHO OFF
PAUSE
GOTO EOF


:EOF

 

The installloc error checking:

IF NOT DEFINED installloc32 IF NOT DEFINED installloc64 GOTO ERRnoinstloc

was missing an "L", causing it to always error on a 64 bit system (the misspelled var obviously would never have been defined).

 

Thanks again for the work guys!

Link to comment
Share on other sites

Can you post the Batch file, I know if the ImDrive command isn't formatted properly it can fail for format the drive.

 

 

Below is my batch file, the only change I have done is adding the extra l in. I just verified that after a reboot trying to run the batch file as Admin and not admin I am asked both times to format the drive.

 

 

@ECHO OFF
:SETVARS
for /F "skip=2 tokens=3,*" %%i in ('reg query "hklm\software\bioware\star wars-the old republic" /v "Install Dir"') do set installloc32=%%j
for /F "skip=2 tokens=3,*" %%i in ('reg query "hklm\software\wow6432node\bioware\star wars-the old republic" /v "Install Dir"') do set installloc64=%%j
IF DEFINED installloc32 IF DEFINED installloc64 GOTO ERRinstloc
IF NOT DEFINED installloc32 set installloc=%installloc64%
IF DEFINED installloc32 set installloc=%installloc32%

:COPY
IF NOT EXIST "%installloc%\swtor\retailclient" (xcopy "%localappdata%\swtor\swtor\settings" "%installloc%\swtor\retailclient" /E /I && ren "%localappdata%\swtor" swtor-orig)

:MKDRIVE
IF EXIST t:\ GOTO MKFOLDER
imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y"

:MKFOLDER
IF EXIST "t:\swtor\swtor\retailclient" GOTO MKLINK1
mkdir t:\swtor
mkdir t:\swtor\swtor

:MKLINK1
IF EXIST "%localappdata%\SWTOR" GOTO MKLINK2
mklink /J "%localappdata%\SWTOR" "T:\SWTOR"

:MKLINK2
IF EXIST "T:\swtor\swtor\settings" GOTO MKLINK3
mklink /J "T:\swtor\swtor\settings" "%installloc%\swtor\retailclient\settings"

:MKLINK3
IF EXIST "T:\DiskCacheArena" GOTO LAUNCH
ren "%installloc%\swtor\DiskCacheArena" DiskCacheArena-orig
mklink "%installloc%\swtor\DiskCacheArena" "T:\DiskCacheArena"

:LAUNCH
set installdrive=%installloc:~0,2%
%installdrive%
cd %installloc:~2%
start "" "%installloc%\launcher.exe" /MIN
GOTO EOF

:ERRinstloc
@ECHO ON
@ECHO "Hmm, you seem to have two installation folders. Better post in the SWTOR forum!"
@ECHO OFF
PAUSE
GOTO EOF

:EOF

Link to comment
Share on other sites

×
×
  • Create New...