gpt4 book ai didi

osx-mavericks - 使用 killall cfprefsd 刷新首选项缓存导致在 OS X 10.9.5 上过度唤醒

转载 作者:行者123 更新时间:2023-12-02 01:39:50 24 4
gpt4 key购买 nike

我在网络上的搜索显示终止信号会触发 cfprefsd 守护进程重新读取所有 plist 文件。 see here

当执行 killall cfprefsd 时,系统会卡住(显示可怕的沙滩球),直到它完全重新启动守护程序(在我的系统上可能需要 1-5 分钟)。在另一台 Macbook(运行 10.9.4)上运行 sudo killall cfprefsd 时我没有观察到这个问题.

这是我在日志中找到的。有什么想法会导致过度唤醒吗?我在哪里可以找到导致此问题的问题?

13-3-'15 11:30:36.063 AM sudo[54484]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/killall cfprefsd
13-3-'15 11:31:28.000 AM kernel[0]: process who[54487] caught causing excessive wakeups. Observed wakeups rate (per sec): 864; Maximum permitted wakeups rate (per sec): 150; Observation period: 300 seconds; Task lifetime number of wakeups: 45001
13-3-'15 11:31:28.000 AM kernel[0]: process cfprefsd[54488] caught causing excessive wakeups. Observed wakeups rate (per sec): 864; Maximum permitted wakeups rate (per sec): 150; Observation period: 300 seconds; Task lifetime number of wakeups: 45001
13-3-'15 11:31:28.000 AM kernel[0]: process cfprefsd[54489] caught causing excessive wakeups. Observed wakeups rate (per sec): 864; Maximum permitted wakeups rate (per sec): 150; Observation period: 300 seconds; Task lifetime number of wakeups: 45001

PS 我怀疑一个或多个 plist 可能已损坏。我如何找出是哪一个?

2015 年 3 月 15 日更新:

我使用 kill -15 <pid> 运行了几次 cfprefsd 重启(我有 2 个:root 和我自己)。虽然在过去两者似乎都被过度唤醒(同时终止)所困扰,但在我的测试中它似乎只适用于 root 用户。所以我可以比较来自 fs_usage 的记录中的时间戳:

当系统卡住时:

13:33:00.015    exit                                                    0.000054    cfprefsd.2656406
13:33:05.007 open F=17 (R_____)/usr/sbin/cfprefsd 0.000035 appProtd.1953
13:33:56.982 posix_spawn /usr/sbin/cfprefsd 5 1.9758 W launchd.2656433
13:34:48.866 stat64 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0.000012 cfprefsd.2656433

没有任何卡住:

13:35:30.124    exit                                                    0.000076    cfprefsd.2656806
13:35:31.790 open F=17 (R_____)/usr/sbin/cfprefsd 0.000029 appProtd.1953
13:35:31.791 posix_spawn /usr/sbin/cfprefsd 0.000728 W launchd.2657306
13:35:31.791 stat64 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0.000014 cfprefsd.2657306

看起来 launchd 有问题及时创建新的 cfprefsd 进程并启动该进程,因为在此期间系统会卡住(注意在此期间 CPU 几乎空闲)

最佳答案

我不知道答案,但我可以提出几个故障排除建议:

  • 不要担心“过度唤醒”消息; AIUI 那些只是表明进程使用的内核服务比“平常”多,并不一定表明实际问题( 12 )。
  • 与其一次终止所有 cfprefd 进程,不如一次终止一个进程,看看是哪个进程导致了挂起。您可以使用 ps -ax -Ouser | grep [c]fprefsd获取 cfprefsd 进程列表,然后使用 sudo kill <PID> 通过进程 ID 杀死它们.
  • 当您重新启动 cfprefsd 进程时,使用 sudo fs_usage | grep cfprefsd查看他们正在访问哪些文件。查找在挂起之前、期间或之后访问的文件,作为可能的可疑对象。
  • 您可以使用plutil -lint 检查.plist 文件的格式完整性。 (例如 sudo plutil -lint /Library/Preferences/*.plist )。请注意,这只会检查属性列表格式的完整性,而不是属性列表中存储的信息。此外,cfprefsd 通常会自行修复(/丢弃和替换)损坏的文件,因此我怀疑这会带来任何影响。
  • 检查 .plist 文件的权限、标志等,例如ls -leO@ /Library/Preferences .例如,如果其中一个文件被锁定(“uchg”标志),或者您的一个用户首选项由其他用户拥有,则可能会导致奇怪的效果。
  • 您可以尝试删除可能有问题的文件,例如将它们移动到您的桌面(我会先备份整个相关的 Preferences 文件夹!),然后看看有什么效果。当您完成此试验后,恢复 Preferences 文件夹的背面,这样您就不会忘记恢复您弄乱的任何文件。

关于osx-mavericks - 使用 killall cfprefsd 刷新首选项缓存导致在 OS X 10.9.5 上过度唤醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com