Hi all, I have a question about actual symlink cost, both on server load and actual resolution times (both sides of same coin arguably) You may see from my linkedin profile I am already a level 11 wizard, however I have just stopped to truly think about the (inherited) current system at work, and the more I think of it, the more it feels like a dr Who episode, where - without the magical "-alh" after your "ls" - you completely forget the terrible evil exists.... and it just sits there growing.... Our user directories (centos6.5) are mount point symlinks "/mnt/symlink_to_user_directory" to the main drive that hosts them - basically meaning the host drive can be moved at any point with zero downtime. ....so to open a terminal "<user>@<host>:" we have already jumped through one symlink, but (and here is where I'm looking for a level 20 wizard to jump in and tell me Im wrong) that link is resolved at this point, so it doesnt count. Then we try to run an app - lets call it "DooHini". We know about DooHini because of the .cshrc file that adds the symlink to the scripts directory to our environment. Wait... I just said "symlink" again. We set a couple of environment variables (including symlink containing paths to LD_LIBRARY_PATH) then follow the symlink to the DooHini application. (Again - level 20 wizards all links are resolved in the execution context of the app and do not count at this point toward our maximm symlink depth - right???) We then open the published alembic file which is ...you guessed it... a symlink to the file that is hosted on a symlinked drive array (meaning the host drive can be moved at any point with zero downtime....) Strangely we never hit the maximum symlink depth, but out servers are curiously slow... I need actual real world data to be able to prove to the powers that be this needs attention. So for all you level 20 wizards out there: - Does anyone know - for definate - the actual server side cost of resolving a symlink? - Does anyone know the cost of adding a symlinked library to the LD_LIBRARY_PATH for an application ? - Does anyone know the cost of adding a symlink to the PYTHONPATH? - Are there any tools or things that can let me know "to get to point X in this execution context you have resolved Y symlinks" - Is this all just a part of the passage to level 12 wizardy ? Should I just nod, smile and think about something else ? And for everyone else: - how many symlinks do you traverse per execution context ? - Are you sure about your above answer ?
Sorry for the really long post, and if this is in the wrong spot. Thanks for any pointers! Trevor |