dotnet/runtime

System.DirectoryServices.Protocols - Linux performance problems with large response sizes

Open

#43,929 创建于 2020年10月28日

在 GitHub 查看
 (4 评论) (2 反应) (0 负责人)C# (5,445 fork)batch import
area-System.DirectoryServiceshelp wantedos-linuxtenet-performance

仓库指标

Star
 (17,886 star)
PR 合并指标
 (平均合并 12天 11小时) (30 天内合并 661 个 PR)

描述

Description

I have observed performance generally being worse on linux, to the point that large requests that succeed on Windows will time out on linux.

When searching for groups using a basic SearchRequest with the following configuration:

var searchRequest = new SearchRequest(
    container,
    "objectCategory=group",
    SearchScope.Subtree,
    new[] { "cn", });

I will get these results:

ou=Company,dc=company,dc=com (715 groups) Windows: ~550ms Linux: timeout

OU=Folder Access,OU=Company Security Groups,ou=Company,dc=company,dc=com (230 groups) Windows: ~230ms Linux: ~23s

OU=Product,ou=Company,dc=company,dc=com (20 groups) Windows: ~90ms Linux: ~2s

This isn't as problematic until reaching higher response sizes where the requests scale to unreasonable response times or just timeout.

I found this when investigating Windows-linux disparity in #43621.

Configuration

  • .NET 5.0.0-rc.2.20475.5
  • aspnet:5.0-alpine docker image
  • x86_64
  • libldap 2.4
  • Windows Server 2019 DC

贡献者指南