Hi, first of all thanks for a great community and game engine!
I should start by saying that im a senior windows user and an absolute noob to the Mac and Unix world. Which can explain some errors ive made below…
We are currently in test phase of larger unity-project and we therefor need a viable assetmanagement-revision control solution. Currently we are using svn (hurray for tortoise) to handle most->all of our revision needs.
And i would say that its been stable and dependant.
Before that we used sourcesafe to some extent…
Asset server stress test
We are currently testing out the UnityAssetServer to see if it will be able to handle our needs.
One test was set up using the standard assets shipped with unity pro duplicating them and commiting consecutively to increase filesize and strain on the AssetServer.
Im using the expression “wait time” or time to execute and with that i mean time that unity is
doing something and not telling the user what it does, not including the wait time with presented info about what going on.
We set up a test using the standard assets comming with a pro license, commiting files to the server in the following order:
Initial commits:
Commit 1:
Asset folder size: 45mb
Lib folder (meta,cache) size: 90mb
Commit 2:
Asset folder size: 90mb
Lib folder (meta,cache) size: 186mb
Commit 3:
Asset folder size: 180mb
Lib folder (meta,cache) size: 374mb
Commit 4:
Asset folder size: 183mb
Lib folder (meta,cache) size: 377mb
3sec “wait time” without any indication whats happening.
Commit 5:
Asset folder size: 366mb, ~5600items
Lib folder (meta,cache) size: 757mb, ~1100items
20sec “wait time” without any indication whats happening.
Step 6:
Asset folder size: 366mb ~11200items
Lib folder (meta,cache) size: 757mb ~20000items
endless? (overnight) “wait time” 10h+, required hardware reboot
After the reboot the following errors occured:
Asset Server Error
Failed to connect: could not connect to server: Connection refused
Is the server running on host “tobiass-mac-pro.local.” and accepting
TCP/IP connections on port 10733?
Trying to fix the problem doing a reinstall of the AssetServer, gave the following problems:
- The installation Failed halfway pointing out that the asset server was already installed.
- Now the user “unitysrv” only has write access to the UnityAssetServer/data folder.
- After giving “unitysrv” read acces to the files and now restarting the server using the data folder, it still wasn’t accessible from within Unity giving the follwoing error:
Asset Server Error
Failed to connect: no pg_hba.conf entry for host “fe80::21f:5bff:fe30:b460%en0”, user
“Tobias”, database “overloadtest”, SSL off
- After looking into the problem it looked like the following files had been overwritten:
postgresql.conf
pg_hba.conf
changing the permission settings in theese files now partially solved the problem. - We now can access the projects from inside unity. And i hope this can help someone else to not do the same mistake i did trying to reinstall the server.
After working with the server some more from another intel based macpro machine not running the server, commits and checkouts of small data amounts 1-5files seems okey. <5sec. same thing on the machine running the server. The update command on the machine that holds the server seems stable around 20sec still holding 11200 files where aproximatly half of it is uncommitted with a metadata filecount of around 20000. Removing the uncommitted resources locally involved 30sec “wait time” which felt rather fast considering the ammount of data, but we are still missing some info about whats going on.
After this the update from server command now involves arount 10sec “wait time”.
Duplicating one of the Pro standarad folders and calling the commit command now it took about 1min of “wait time” for the commit dialog to appear. And around 5sec “wait time” after the commit was executed.
The refresh command now takes around 5sec to execute.
Conclusion
The Asset Server wait time seems to be scaling with the ammount of metadata files that has to be built up around each asset. The more assets in the repository the longer the asset server wait time for every command that invloves syncronizing these files?
Is there a work-around for this?
What is the maximum filesize/items any of you guys are having in your AssetServer-projects.
I have searched to some extent on the forum but i cant find any posts with someone that has had similar experiance with larger projects inside the asset server.
So have anyone else encountered problems with slow response time from unity->assetserver when dealing with larger projects?
I cant say that it would be acceptable with more than 10sec “wait time” without giving the user some notification whats going on during commits. I could just guess that this has something to do with the metada that needs to be syncronized against the server somehow?
We also need a way to share revisioned assets-resources between windows and mac. Is there a viable solution for this using only the Asset Server?
Im considering writing a windows based client able to check out atleast the “head” reources of the assets from the asset-server-pgsql database if there is no other way. But this seems abit overhead when we already have subversion up and running and working nicely on both mac and pc…
How do you manage windows->mac version control?
Are you using subversion or some other versioncontrolsys. to store another copy of all the assets?
Im considering setting up unity under vm-ware under winXP with either linux or osx, have anyone tried this out successfully?
Solutions
-
Use subversion to handle resources around unityprojects. Storing them outside the of unity and “streaming” them through the WWW class. The first thing that comes to my mind here is large amounts of audio assets and maby textures as this is supported out of the box.
This and maby using a pgsql server for all the filedirectory structure data and more..
Using the asset server to contain the metadata specific files such as prefabs and more static objects in the scene such as houses - terrain and more. -
Splitting up large projects into multiple small projects and contain them separatley on the Asset Server. Here the problem of sharing resources comes up, is this possible to do this with the asset server or do we have to zip the files into asset packages? If then is this a viable solution for shared data that will be updated on a quite regular basis?
Notes
There is an Auto-refrsh checkbox unchecking this did seem to help littlebit, but i guess its just som call to the refresh server view command?
Hate that my first post is in the “wining context”, but hey thats why support forum exists, right?
Any help is most welcome!
Cheers,
Tobias