gpt4 book ai didi

performance - Azure Redis 内存使用情况(w3wp.exe 转储)洞察

转载 作者:行者123 更新时间:2023-12-02 07:12:46 26 4
gpt4 key购买 nike

谁能告诉我 Visual Studio 的内存转储中概述的行为类型 w3wp dump output

正常吗?例如,StackExchange.Redis.PhysicalConnection 在包含大小(字节)上运行得那么高吗?还是真的很高?

基本上,在将代码从 session 转换为在 Azure Redis 上运行后,我们的 Web 头运行缓慢(我们现在根据需要进行序列化和反序列化并存储在 Redis 缓存中),但整体性能很糟糕。

请求已完成,但可能需要一段时间,这是由于 Redis 的单线程特性吗?我们正在使用 Azure Redis 团队概述的最佳实践配置,如此处所述 https://stackoverflow.com/a/28821220

我们还可以考虑什么来帮助提高性能,因为当前的性能无法作为我们目前基于 session 的实现(asp.net webforms/sql server/azure IaaS)的可行替代品。

PS - 序列化和反序列化确实会造成影响,我们知道 IIS 用它自己的用于非序列化数据集等的特殊内存池破坏了我们,但它不可能导致页面增加 300-500%负载就像我们现在一样。

感谢您的想法!

@蒂姆·韦曼

您的缓存对象有多大?它们的大小不等,有一些数据集存储在redis中。

它们是什么类型的对象?大多数对象都是具有可变数量属性的自定义对象,有些甚至包含集合。

您使用什么序列化器?我们将 Newtonsoft 用于不需要 Rowstate 的任何操作,并为需要 rowstate 的数据集使用所需的二进制序列化程序。

所有序列化以及随后的反序列化都是在调用 Redis 数据库 StringGet 或 StringSet 之前在代码中完成的。

最佳答案

如果内存实际上非常高,则我们错误地创建了数千个与 Redis 的连接,而不是 Redis 缓存的单个实例。

在 CPU 达到 98% 之前,GC 未清理多个连接,服务器将变得无响应。

我们调整了代码,以确保与 Azure Redis 的连接的单个实例用于所有 Redis 调用,并且已经进行了彻底测试。

由于 Azure Redis 不再占用内存或 CPU 资源,该问题似乎已得到解决。

关于performance - Azure Redis 内存使用情况(w3wp.exe 转储)洞察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35996735/

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