How Services for Macintosh uses system resources in Windows Server 2003
This article has been archived. It is offered "as is" and will no longer be updated.
For a Microsoft Windows NT Server version of this article, see 161870.
Microsoft Windows Server 2003 Services for Macintosh allocates system resources for each Macintosh file and folder that it shares. Services for Macintosh also allocates resources when it rebuilds the index of a Macintosh volume. Some of these resources are shared by other kernel components. This article describes the resources that are allocated to each file and folder on a Macintosh volume. You can use this information to help plan how you set up your server.
In Microsoft Windows Server 2003, the number of files and folders that the Services For Macintosh feature can share on Macintosh volumes is limited by the system resources on the server. This article describes the system resources that Services for Macintosh uses, including the memory that is allocated for each file and folder on a Macintosh volume. You can use this information to tune a Windows server that is running Services for Macintosh and to plan server capacity.
Some resources, such as paged pool memory, are shared by drivers, services, and other kernel components. Therefore, the actual number of files that a server can share by using Services for Macintosh will depend on how much paged pool memory other components use. The resource numbers that are described in this article can help give you a rough estimate the capacity of your server, but they do not guarantee the actual capacity.
The File Server for Macintosh part of Services for Macintosh includes a service and a kernel-mode filter driver. To improve file sharing performance, the filter driver creates an index of all files and folders in the server's Macintosh volumes. This index contains one entry per file and is stored in paged pool memory. Additionally, Services for Macintosh makes one allocation in paged pool memory and one folder change notification object for each folder and subfolder on the volume.
When Services for Macintosh creates an index, Services for Macintosh makes a second allocation in paged pool memory and a second folder change notification for each folder and subfolder. These additional allocations are freed after the volume index has been created.
The index of a shared volume that has a small number or a medium number of files typically has a negligible effect on the server. However, if the volume is very large, its index may use so much paged pool memory that paged pool memory is exhausted. When this problem occurs, Services for Macintosh cannot share additional files or folders, and other operations on the server may not succeed. For example, you may not be able to use Remote Procedure Call or start new processes. Therefore, it is a good idea to estimate the effect that Services for Macintosh may have on the server.
The following sections describe the resources that are consumed by each file and folder on a Services for Macintosh volume.
File resource usageTo store an index, Services for Macintosh allocates paged pool memory in multiple 64 KB blocks. Services for Macintosh then fills each of these blocks with information about files and folders. The following table shows the number of bytes that are used for each file on the volume.
|Number of characters in file name||Bytes used|
|1 - 8||120|
|9 - 12||128|
|13 - 20||144|
|21 - 32||168|
Folder resource usageThe index entries for folders and subfolders are stored in the same paged pool memory blocks as the index entries for files. However, Services for Macintosh records slightly more information about folders and subfolders. The following table shows the number of bytes that are used for each folder and subfolder on the volume.
Additionally, Services for Macintosh creates one NT executive folder change notification object for each folder and subfolder. These objects also share paged pool memory.
|Number of characters in file name||Bytes used|
|1 - 8||140|
|9 - 12||148|
|13 - 20||164|
|21 - 32||188|
Finally, Services for Macintosh allocates 112 bytes of memory to track the notification object. In Microsoft Windows 2000, these bytes are allocated in nonpaged pool memory. In Windows Server 2003, these bytes are allocated in paged pool memory.
Resource usage during reindexingWhen Services for Macintosh rebuilds an index, it allocates memory for file and folders as described earlier, and it makes two additional allocations for each folder and subfolder:
- One NT executive folder change notification object
- One additional 112-byte pool memory allocation
Capacity planning examplesIn Windows 2000 Server, Services for Macintosh uses approximately 1 MB of paged pool memory for every 6241 files. (1,048,576 bytes per megabyte divided by 168 bytes per file equals approximately 6241 files.) Services for Macintosh uses 1 MB of paged pool memory for every 5577 folders. (1,048,576 bytes divided by 188 bytes per folder equals approximately 5577 folders.) Finally, Services for Macintosh uses 1 MB of nonpaged pool memory for every 9362 folders. (1,048,576 bytes divided by 112 bytes per folder equals approximately 9362 folders.) Therefore, if a Windows 2000-based server has 100 MB of paged pool memory and 90 MB of nonpaged pool memory available, Services for Macintosh may be able to use approximately 80 MB of paged pool memory and 60 MB of nonpaged pool memory to host approximately 1000 folders and 498,000 files. You can verify these figures by using the following calculations:
- 1000 * 112 = 112,000 bytes of nonpaged pool memory. (This value is not more than 60 MB.)
- 80MB - (1,000 folders * 188) / 168 bytes per file = 498,202 files.
- Paged pool memory:200,000 * 168 = 33,600,000
40,000 * 188 = 7,520,000
Total: 41,120,000 bytes = 39MB
- Nonpaged pool memory:40,000 * 112 = 4,480,000 bytes = 4.3MB
Note Because Windows Server 2003 does not use nonpaged memory, Windows Server 2003 does not require as much physical RAM as Windows 2000 Server requires.
Additional resource usageIn Windows 2000, the default paged pool memory size is 160 MB, but you can increase this size up to 491 MB. To do this, give the following registry subkey a value that is specified in bytes, and then restart the computer:
For additional information about this subkey and its effect, click the following article number to view the article in the Microsoft Knowledge Base:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Manager\PagedPoolSize
312362 Server is unable to allocate memory from the system paged poolIn Windows Server 2003, the default paged pool memory size is 470 MB.
The following table illustrates the paged pool memory limit for the different operating systems.
For additional information about virtual memory, see Inside Microsoft Windows 2000 by David A. Solomon and Mark E. Russinovich.
|Operating system||Default paged pool memory limit||Maximum paged pool memory limit|
|Windows NT 4.0||-||192 MB|
|Windows 2000||160 MB||491 MB|
|Windows Server 2003||470MB||-|
For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
147909 Troubleshooting MacVolume creation errors
243839 Services for Macintosh not supported in a cluster environment
241024 Slow file access from Macintosh clients connected to a Windows NT Server
818894 Changes to increase the number of open files in Windows 2000 SP2 and later
pagedpoolsize File Server for Macintosh Apple Mac OS X OS 9 scalability perfmon MacFile directory directories KM byte Mbyte meg megs
Article ID: 842355 - Last Review: 01/10/2015 15:37:13 - Revision: 3.0
Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86)
- kbnosurvey kbarchive KB842355