安装 Windows Store 应用后,如果使用超过 8GB 的​​内存,则会出现“传递给系统调用的数据区域太小”的错误

安装 Windows Store 应用后,如果使用超过 8GB 的​​内存,则会出现“传递给系统调用的数据区域太小”的错误
重现步骤
  1. 重新启动电脑并登录(Windows 10)

  2. 运行应用程序,使总内存使用量超过 8 GB。对我来说,这可以是 Visual Studio、Chrome、VSCode 等(Docker 和 SQLServer 在后台运行),或者简单地运行“testlimit -d -c 4096”(使用测试极限来自 Sysinternals)

  3. 尝试从 Windows 商店安装某些应用(例如 Slack)。我不确定该应用是否需要是 Desktop Bridge 应用,或者 UWP 应用是否也存在此问题。该应用是否直接来自 Windows 商店或是否是侧载的 .appx 似乎并不重要

预期结果

应用程序启动并运行。

实际结果

应用程序失败并显示以下消息:

传递给系统调用的数据区域太小。


我的问题是:有人能建议我如何排除该错误以找到根本原因吗?另外,其他人可以重现同样的问题吗?我想知道这是否是我的 PC 特有的问题,还是 Windows 应用商店普遍存在的问题。

答案1

与 MS SQL Server 2017(以及 2014/2016)存在不兼容问题。如果可能,请卸载 SQL Server。否则,这些补丁可以解决问题:

https://support.microsoft.com/en-us/help/4073393/fix-the-data-area-passed-to-a-system-call-is-too-small-error-when-you

如果您仅将其用于开发目的,则可以改为在 Docker 容器中运行,该容器的运行足够隔离,可以防止出现此错误。我在运行 SQL Server 2017 for Linux 方面拥有丰富的经验,它稳定且快速。

答案2

当我尝试启动 Ubuntu 时,Windows Subsystem for Linux 出现了这个问题。对我来说,这与内存无关,我可以尝试在机器重启后立即启动 Ubuntu,然后登录,但仍然会出现错误。

我认为就我而言,这实际上与拥有网络主驱动器并在该驱动器上启用离线文件有关。

我可以安装新版本的 Windows 10,安装并配置 WSL 和 Ubuntu,运行数周而不启用离线文件,它工作正常。一旦我启用离线文件并重新启动,Ubuntu 将不再启动并显示“数据区域太小”错误消息。禁用主驱动器的离线文件甚至完全禁用离线文件似乎都无法解决问题。所以我找到的唯一解决方法是永远不要在我的主驱动器上启用离线文件。

答案3

我在 Windows 10 中遇到了同样的问题(“传递给系统调用的数据区域太小”),由于这个问题,我无法打开 Skype。经过一番分析,发现 Microsoft SQL Server 驱动程序存在问题。

为了解决这个问题,我在任务管理器中禁用了 Skype 的启动功能(Skype 只对我有影响)。然后我重新启动系统,在重新启动系统后,打开 Skype,它就可以正常工作了

相关内容