Mac OS X Mavericks冻结,内存不足时停止响应


9

每隔一天就会发生一次,至少可以说症状很奇怪。计算机仍会在某种意义上作出响应。我可以移动鼠标,耳机上的音量按钮起作用。他们的键盘什么没做,也没有点击。没有呈现悬停状态。好像鼠标指针没有真正移动。

如果我使用SSH或使用远离我的手机(我用Rowmote)是登录另一台计算机,我可以用电脑慢,虽然-但是它响应。

在这种状态下,我只能做很少的事情。启动新应用程序是一个轮盘赌,例如,我可以启动活动监视器(没什么奇怪的事),但是之后无法启动控制台。关闭应用程序会产生奇怪的结果,直到最后它也停止响应遥控器。有趣的是,远程应用程序不认为它已经失去了连接,因此仍以某种方式仍然接收并确认了远程命令。

这是/var/log/system.log发生的那一刻的相关输出:

Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:28 knifen.local WindowServer[119]: BUG in libdispatch: 13A603 - 2930 - 0x1000480c
Jan  3 10:39:51 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:40:50 knifen.local Spotify[13941]: Got disconnected: Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo=0xfa075f0 {NSLocalizedDescription=Read operation timed out}
Jan  3 10:40:55 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:41:50 knifen.local hidd[95]: IOHIDEventQueue unable to get policy for event of type 11. (e00002e8)
Jan  3 10:41:56 --- last message repeated 113 times ---

我真的不知道在这里有什么,如果您有提示,我想那会很好。苹果看来这是一项糟糕的工程。

Answers:


4

当OS缺乏足够的磁盘空间时,在设计上会发生坏事,试图使系统的关键部分保持足够长的在线时间,以使受控崩溃发生,并可能使带有更改的应用程序能够保存下来,直到清除活动为止开始。

Mavericks不太可能将全部RAM分配给/ var / db / sleepimage,因此,如果操作系统在操作条件要求下需要一点空间来增加睡眠映像,则习惯于预先分配空间的人可能会感到意外。

主要提示是,当您的工作负载给虚拟内存系统带来压力并以红色内存运行时,它会在可引导卷上保留几GB的可用空间。

这是我的建议:

  • 小牛和优胜美地的“记忆压力”坚持什么规模或尺度?关于监视和在命令上引起内存压力有一些好的信息
  • 引导系统,登录一个用户,退出所有应用程序
  • 打开活动监视器并观察/记录内存屏幕
  • 使机器进入睡眠状态并在30秒后将其唤醒
  • 运行sudo du -sm /var/vm/*并记录您的睡眠映像文件有多大,以及是否已在磁盘上创建任何交换文件。

如果打算运行使虚拟内存系统进入黄色区域以承受内存压力的程序,则理想情况下将希望磁盘上有足够的可用空间以匹配总内存占用量。您可能并不需要仅用于操作系统的所有空间,但是特别是如果遇到列表中出现的内存错误时,正在运行的工作负载需要比允许的空间更多的可用空间来增长。

此外,如果您认为系统调整不正确,则可以通过sysdiagnose在如上所述的干净启动后运行来轻松提交错误报告,在系统正常运行预期的工作负载时再次运行,并sydiagnose在导致内存后最后运行一次分配以开始破坏系统。苹果可能会做出更好的选择,但也可能是您的软件存在故障/内存泄漏,并且有限的资源用尽后,系统正按预期崩溃。没有更多细节,很难说出是哪种情况。


2

“ shmem”是共享内存,并且OS X无法分配共享内存。因此,看来计算机的RAM和硬盘驱动器内存都已用完。是这样吗 冻结时,似乎还剩下大约1GB的空间。

  • 通过删除文件释放磁盘空间
  • 通过关闭应用程序释放内存

在这种特殊情况下,日志随后显示,Spotlight一直试图索引已安装的稀疏卷,导致后备磁盘空间不足。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.