has anyone seen this issue? i am going to be using 1 symlink per user for homedirs because our homedir struct is not flat - h/a/aboy, h/b/balbert with dirs a - z. the homedir option will point to the homelinks dir which contains all the symlinks.
Description Prolonged heavy access by CIFS clients that involve or cause lookup of Unix absolute symbolic links can affect filer performance. Because the resolution of absolute symlinks depends on Unix mount point information which is not available to CIFS clients, a table of translations is kept on the filer (/etc/symlink.translations). The entries in this file are order dependent and are searched sequentially. If a CIFS client is doing symlink lookups frequently, and if the entry to resolve the symlink is near the end of the file, and if the file is large, there can be a great deal of CPU utilization. This can slow operations for other users. For example, a user may be changing files in a directory that contains dozens of absolutes symbolic links. The /etc/symlink.translations file may have 1000s of entries. The user is accessing the files with Windows Explorer. After the target file is updated, the filer notifies Explorer of the file change. This is because Explorer will have posted a "change notify" request with the filer, so that it is alerted when changes occur and can update/redraw its display window. Explorer will touch each file including each of the symbolic links. The access of the symlinks will cause the filer to attempt to resolve them by scanning the /etc/symlink.translations entries. If there are many symlinks, many entries,multiple users with Explorer windows affected by change-notify updates, and if the entries needed to resolve the symlinks are missing or at the end of the /etc/symlink.translations file then filer performance can be affected.
Workaround Use the filer's cifs homedir feature (options cifs.home_dir) instead of using a symlink per user when implementing CIFS home directories if there are many users.
Neil,
If I understand the bug description correctly, it's not the "one symlink per user" alone that causes the performance problems. It's that in combination with a large "symlink.translations" file on the filer which slows things down.
We've been using 1 symlink per user since the beginning (1997), and we've been using this setup with the filer-generated CIFS homedir shares since June, with no performance issues. Like you, we have the cifs.homedir option pointing at our /home/users/ directory, which contains all the symlinks. We don't have 1000's of users, and we only have two entries in our symlink.translations file. It seems like one should be able to get by with only one or maybe a few entries per volume on your filer.
Regards,
how many users do you have pointed to with symlinks? we would have about 2000 and no entries in our symlink.translations file.
Marion Hakanson wrote:
Neil,
If I understand the bug description correctly, it's not the "one symlink per user" alone that causes the performance problems. It's that in combination with a large "symlink.translations" file on the filer which slows things down.
We've been using 1 symlink per user since the beginning (1997), and we've been using this setup with the filer-generated CIFS homedir shares since June, with no performance issues. Like you, we have the cifs.homedir option pointing at our /home/users/ directory, which contains all the symlinks. We don't have 1000's of users, and we only have two entries in our symlink.translations file. It seems like one should be able to get by with only one or maybe a few entries per volume on your filer.
Regards,
-- Marion Hakanson hakanson@cse.ogi.edu CSE Computing Facilities
Neil Lehrer nlehrer@ibb.gov writes:
has anyone seen this issue? i am going to be using 1 symlink per user for homedirs because our homedir struct is not flat - h/a/aboy, h/b/balbert with dirs a - z. the homedir option will point to the homelinks dir which contains all the symlinks.
Description Prolonged heavy access by CIFS clients that involve or cause lookup of Unix absolute symbolic links can affect filer performance. Because the resolution of absolute symlinks depends on Unix mount point information which is not available to CIFS clients, a table of translations is kept on the filer (/etc/symlink.translations). The entries in this file are order dependent and are searched sequentially. If a CIFS client is doing symlink lookups frequently, and if the entry to resolve the symlink is near the end of the file, and if the file is large, there can be a great deal of CPU utilization. . . .
Neil Lehrer nlehrer@ibb.gov wrote:
how many users do you have pointed to with symlinks? we would have about 2000 and no entries in our symlink.translations file.
Oh, sorry, should've mentioned that. About 750, at present, though probably less than half are more than occasional users. The filer is an F820, and our load is pretty light (we never really strained the previous model, an F630).
Regards,
-- Marion Hakanson hakanson@cse.ogi.edu CSE Computing Facilities
Piggy backing off this thread. How will symlink.translation solve my problem? Below is our set up:
Two filers with home1 home2 on filer A and home3 and home4 on filer B. Users A-E are on \filerA\home1 Users F-L are on \filerA\home2 Users M-Rare on \filerB\home3 Users S-Z are on \filerB\home4
How can I make mapping from NT or Win2k be the following: \VirtualName\username or \VirtualNameA\username and \VirtualNameB\username
Or what will be the best solution for this set up
Thanks, Oye
The reason for this is that we have
neil lehrer wrote:
how many users do you have pointed to with symlinks? we would have about 2000 and no entries in our symlink.translations file.
Marion Hakanson wrote:
Neil,
If I understand the bug description correctly, it's not the "one symlink per user" alone that causes the performance problems. It's that in combination with a large "symlink.translations" file on the filer which slows things down.
We've been using 1 symlink per user since the beginning (1997), and we've been using this setup with the filer-generated CIFS homedir shares since June, with no performance issues. Like you, we have the cifs.homedir option pointing at our /home/users/ directory, which contains all the symlinks. We don't have 1000's of users, and we only have two entries in our symlink.translations file. It seems like one should be able to get by with only one or maybe a few entries per volume on your filer.
Regards,
-- Marion Hakanson hakanson@cse.ogi.edu CSE Computing Facilities
Neil Lehrer nlehrer@ibb.gov writes:
has anyone seen this issue? i am going to be using 1 symlink per user for homedirs because our homedir struct is not flat - h/a/aboy, h/b/balbert with dirs a - z. the homedir option will point to the homelinks dir which contains all the symlinks.
Description Prolonged heavy access by CIFS clients that involve or cause lookup of Unix absolute symbolic links can affect filer performance. Because the resolution of absolute symlinks depends on Unix mount point information which is not available to CIFS clients, a table of translations is kept on the filer (/etc/symlink.translations). The entries in this file are order dependent and are searched sequentially. If a CIFS client is doing symlink lookups frequently, and if the entry to resolve the symlink is near the end of the file, and if the file is large, there can be a great deal of CPU utilization. . . .
--
regards
+++++++++++++++++++++++++++++++++++++++++++++++++
- Neil Lehrer
- United States International Broadcasting Bureau
- System Development Division
- voice 202 619-2524
- fax 202 619-3576
- nlehrer@ibb.gov
- " is this crisis an opportunity or just
- another grab the fire extinguisher moment?"
+++++++++++++++++++++++++++++++++++++++++++++++++
Piggy backing off this thread. How will symlink.translation solve my problem? Below is our set up:
Two filers with home1 home2 on filer A and home3 and home4 on filer B. Users A-E are on \filerA\home1 Users F-L are on \filerA\home2 Users M-Rare on \filerB\home3 Users S-Z are on \filerB\home4
How can I make mapping from NT or Win2k be the following: \VirtualName\username or \VirtualNameA\username and \VirtualNameB\username
Or what will be the best solution for this set up
Thanks, Oye
I am assuming home1 and home2 are volume names.
I would set up cifs.home_dir on each filer with a symlink for each user. For example if user adam is on filerA in home1, and user beth is in home2, I would have these symlinks:
adam -> /vol/home1/adam beth -> /vol/home2/beth
Then I would educate my users like this:
If your username begins with A thru L, use
\filerA\username
If your username begins with M thru Z, use
\filerB\username
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support
has anyone seen this issue? i am going to be using 1 symlink per user for homedirs because our homedir struct is not flat - h/a/aboy, h/b/balbert with dirs a - z. the homedir option will point to the homelinks dir which contains all the symlinks.
We are doing exactly what you describe with no trouble.
As I understand it, If you have lots of absolute symlinks and you have lots of entries in /etc/symlink.translations and you have lots of CIFS clients accessing the absolute symlinks, then the filer can get bogged down repeatedly searching the /etc/symlink.translations file. And the symlinks need to be inside a user's directory for this to happen (not in the cifs.home_dir directory).
Using symlinks in your cifs.home_dir directory does not contribute to this problem. The filer follows these symlinks without consulting /etc/symlink.translations and only once when the user logs in, to find the home directory.
Description Prolonged heavy access by CIFS clients that involve or cause lookup of Unix absolute symbolic links can affect filer performance. Because the resolution of absolute symlinks depends on Unix mount point information which is not available to CIFS clients, a table of translations is kept on the filer (/etc/symlink.translations). The entries in this file are order dependent and are searched sequentially. If a CIFS client is doing symlink lookups frequently, and if the entry to resolve the symlink is near the end of the file, and if the file is large, there can be a great deal of CPU utilization. This can slow operations for other users. For example, a user may be changing files in a directory that contains dozens of absolutes symbolic links. The /etc/symlink.translations file may have 1000s of entries. The user is accessing the files with Windows Explorer. After the target file is updated, the filer notifies Explorer of the file change. This is because Explorer will have posted a "change notify" request with the filer, so that it is alerted when changes occur and can update/redraw its display window. Explorer will touch each file including each of the symbolic links. The access of the symlinks will cause the filer to attempt to resolve them by scanning the /etc/symlink.translations entries. If there are many symlinks, many entries,multiple users with Explorer windows affected by change-notify updates, and if the entries needed to resolve the symlinks are missing or at the end of the /etc/symlink.translations file then filer performance can be affected.
Workaround Use the filer's cifs homedir feature (options cifs.home_dir) instead of using a symlink per user when implementing CIFS home directories if there are many users. --
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support