我有一台 unRAID 服务器(如果您不熟悉 unRAID,可以访问 lime-technology.com 查看),这是一台基于 Linux 的服务器。我在 iMac 上使用 iTunes 时性能很差。音乐播放正常。但如果我导入歌曲文件或更改任何元数据,就会出现问题。这不是什么新鲜事,我读过很多抱怨这个问题的帖子,以及有关 SMB 共享和文件系统的其他问题。但我想我可能发现了一些问题,想听听一些建议。
这是我目前发现的。Snow Leopard,OS 10.6.x,与 SMB 和/或除 HFS+ 之外的任何文件系统存在问题。HFS+ 是 OS X 的常用文件系统。
网上有数百篇帖子抱怨使用 SMB 共享和其他文件系统的 Mac 出现暂时冻结、速度变慢、有时崩溃的情况。我还没有看到 Apple 承认存在问题,但网上有一些建议似乎对人们有所帮助。本周我将尝试其中的一些方法,并在此处发布结果。
根据我自己的观察,特别是使用 iTunes 时,我注意到了一些奇怪的行为。这是我的设置。我有一台运行 10.6.4(最新更新)的 iMac,最新的 iTunes 10。iTunes 应用程序位于本地内部 HD 上,我的 iTunes 库文件和所有媒体都位于 unRAID 服务器的磁盘 1 上。我通过千兆路由器硬连线到服务器。我已将 iTunes 设置为保持媒体井然有序并将媒体文件复制到服务器。
将歌曲文件导入 iTunes 时,文件最初似乎以良好的速度复制,文件出现在正确的位置,您可以看到文件大小在复制过程中不断增加。然后它会停滞一段时间,然后名称会变成一个长十六进制数字并持续几秒钟,然后恢复到正常状态。即使歌曲文件很小,这个过程也可能需要 30-40 秒。我查看了控制台,收到以下错误消息:
2010 年 11 月 8 日 上午 12:24:28 /Applications/iTunes.app/Contents/MacOS/iTunes[2820] 可能存在未解决的事务竞争 -103/(Master Music Library/John Lennon/Rock 'N' Roll,(null))
当我更改元数据时,也会发生同样的事情。更新文件需要很长时间。例如,我添加了一张专辑的名称,每更改一首歌曲,我都会得到:
2010 年 11 月 8 日 上午 12:37:36 /Applications/iTunes.app/Contents/MacOS/iTunes[2820] 可能存在未解决的事务竞争 -103/(Master Music Library/John Lennon/Signature Box Set 5 - Walls And Bridges,(null))
每次导入或更改文件时都会发生这种情况,即使在 iTunes 中也是如此。源文件是在 Mac 上(比如说导入文件)还是在服务器上(比如说元数据更改文件),似乎并不重要
我按照错误消息中的第一个路径进行操作:/Applications/iTunes.app/Contents/MacOS/iTunes[2820]。
在 /Applications/iTunes.app/Contents/MacOS/ 文件夹中,我找到以下文件:
iTunes
libgnsdk_musicid.1.7.1.dylib
libgnsdk_sdkmanager.1.7.1.dylib
libgnsdk_submit.1.7.1.dylib
其中 iTunes 是 Unix 可执行文件。
我做了一些研究,发现一些帖子说 HFS+ 以外的文件系统在处理应用程序包时遇到了麻烦。我相信所有 OS X 应用程序实际上都是包,就像文件夹一样,但显示为单个文件。其他文件系统似乎不知道如何处理这些应用程序包。有人讨论过“扁平化”这些应用程序包,但我还没有继续这样做,因为我不确定我是否理解得足够多。
我还注意到,在共享和权限下的 getinfo 框中,我通常会看到“您可以读取和写入”,但使用应用程序时,我得到的却是“您有自定义访问权限”。我之前就注意到了这一点,并认为这是服务器的问题,但直到现在我才意识到,我在每个应用程序上都获得了自定义访问权限。所以我认为这可能是正常的。
我想知道 iTunes Unix 可执行文件是否存在权限问题。目前权限设置如下:
系统:读写
管理员:阅读与写作
所有人:只读
也许它正在尝试写入该文件或另一个文件,但由于歌曲文件现在在服务器上,因此没有正确的权限,这导致了停顿?我对此感到困惑。有人有什么想法吗?
答案1
我不认为 iTunes.app 本身有问题。如果您在非 HFS* 文件系统中运行 Mac OS X 应用程序包,它们大多数情况下都可以正常工作,只需尝试从 FAT 格式的驱动器运行应用程序,它就可以正常工作。
控制台部分
(...) /Applications/iTunes.app/Contents/MacOS/iTunes[2820] (...)
仅指示哪个可执行文件记录了该错误(而 2820 是进程 ID)。Mac OS X 应用程序的“工作部分”只是普通的 unix 可执行文件(因为 Mac OS X 实际上是某种 unix 衍生品)。
我敢打赌,问题在于你的 iTunes 资料库使用了 SMB 文件系统。