This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM572x NDK (TCP/IP)性能改进点

Guru**** 2540000 points
Other Parts Discussed in Thread: TMDSEVM572X

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1018752/am572x-ndk-tcp-ip-performance-improvement-points

主题中讨论的其他器件:TMDSEVM572X

您好、专家

客户的产品规格要求 TCP/IP 通信在25毫秒周期内传输320KB。
但是、目前大约需要37.5毫秒。 但是、目前大约需要37.5毫秒、这不符合规格。

通过 Wireshark 捕获和分析传输数据、我们发现传输时间约为37.5ms。
我们对此有一些疑问。
随附文件详细解释,但我将简要介绍我的问题的内容。
下面是该问题的简要说明。
有关详细信息、请查看随附的文档。


e2e.ti.com/.../NDK-Performance-Results.pptx

Q1:为什么 PC 端64240的窗口大小?
为什么在 PSH=1时以8192字节为单位发送数据?
您能使它每16384个周期吗?
例如、是否可以将其设置为每16384个字节?

  从 PC 接收到 ACK 信号后、直到下一次数据传输的时间
  启动时间很长(平均约为1.0ms)。
Q2:这次的目的是什么?

Q3:是否可以将此时间更改为更短的时间(例如、一半)或固定的时间?

我们认为,如果不缩短这段时间,我们将无法满足这些规格。
如果有其他方法、请告诉我。

此致、
Hidekazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    1. 这是哪个 SDK 版本? 在重现问题之前、我不能发表评论。
    2. 您能否共享在 RTOS 应用程序和 PC 端执行的命令之上完成的更改以执行此操作?
    3. 低周期时间可能是由各种问题引起的。
      1. 您的系统是否正在运行另一个应用程序或正在处理中断?
      2. 您是如何编译应用程序的? 您是否检查了构建标志并确保其针对性能进行了优化?
      3. 用于发送 TCP 消息的任务的优先级是多少? 您是否尝试提高其优先级?
    4. RTOS 应用程序仅用于演示目的、并未真正针对性能进行调整。 我知道、在 RT Linux 中、我们可以使用 iperf 实现相当高的吞吐量、因此硬件本身非常能够满足您的目标。

    此致

    葡萄园

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vineet

    感谢你的答复。

    这是哪个 SDK 版本? 在重现问题之前、我不能发表评论。

    答案1:)

    如连接到此线程的 NDK 性能 Results.ppt 中所述。
    我使用的是以下版本
    BIOS:BIOS_6_76_03_01
    SDK:processor_sdk_rtos_am57xx_6_03_00_106
    NDK:NDK_3_61_01_01
    PDK:pdk_am57xx_1_0_17


    2.您能否共享在 RTOS 应用程序和 PC 端执行的命令之上所做的更改以执行此操作?

    答案2)

    连接到此线程的 NDK 性能 Results.ppt 显示了修改和测试摘要。

    低周期时间可能是由各种问题引起的。
    您的系统是否正在运行另一个应用程序或正在处理中断?
    您是如何编译应用程序的? 您是否检查了构建标志并确保其针对性能进行了优化?
    用于发送 TCP 消息的任务的优先级是多少? 您是否尝试提高其优先级?

    答案3.)

    1. 如连接到此线程的 NDK 性能 Results.ppt 中所述。
    2. 这是基于 Nimu_FtpExample_idkAM574x_armExampleProject()的定制版本。

    主要变更:
    1:当从 PC 访问时、编程发送64kBx5 (=320KB)
          {
              字节= SEND (IOH->套接字,(void*) 0x90000000,8192*8,0);
              字节= SEND (IOH->套接字,(void*) 0x90000000,8192*8,0);
              字节= SEND (IOH->套接字,(void*) 0x90000000,8192*8,0);
    字节= SEND (IOH->套接字,(void*) 0x90000000,8192*8,0);
              字节= SEND (IOH->套接字,(void*) 0x90000000,8192*8,0);
          }
    0x9000 0000-0x9001 0000 (存储0和1之间的值)
    2:将发送缓冲区从16384更改为65536 (由 cfg 文件设置)
         nimu_idk.cfg tcp.transmitBufSize=65536
         PC 上的软件:在 C#中创建的原始软件
         连接形式:TMDSEVM572X <->PC (直接连接)

     我们没有对优先级作出任何改变。


    此致、
    Hidekazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vineet

    我已披露了所需信息、但未收到任何意见。
    我们的客户遇到困难、请您向我们提供
    有助于我们立即提高绩效的信息?

    此致、
    Hidekazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hidekazu、您好!

    很抱歉耽误你的时间。

    我将运行此测试并告知您、请给我2-3天时间、以便与您联系。

    此致

    葡萄园

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vineet

    预定的答复截止日期已大大超过、
    请尽快提供测试结果和评论?

    此致、
    Hidekazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hidekazu、您好!

    很抱歉耽误你的时间。 我在 AM572 IDK 上遇到 CPSW 端口问题、现在我在新的 AM574 IDK 上运行 FTP 示例应用程序。

    这是我看到的命令行输出

    wget 用户:password@192.168.4.4/test-无源
    2021-08-23 19:55:00-- 用户:*password*@192.168.1.4/test
              =>‘TEST.5’
    正在连接到192.168.1.4:21... 互联。
    以用户身份登录... 已登录!
    => SYST... 完成。    => PWD…… 完成。
    =>类型 I... 完成。  =>不需要 CWD。
    =>大小测试... 完成。

    =>端口... 完成。    => RETR 测试... 完成。

    test.5[<=>]                                                                                                                                                             2.44M ---kb/s   ,0.1秒    

    2021-08-23 19:55:00 (20.7 Mb/s)-‘test.5’saved [2560000]

    这是我的 Wireshark 输出

    我正在运行您在 PPT 中提到的测试、我将在明天更新此主题

    此致

    葡萄园

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我无法理解 FTP 应用程序的延迟问题、因为该应用程序中还有冗余的其他任务和功能。

    我正在尝试使用更简单的 Nimu Basic 示例对其进行仿真、将很快发布更新。

    此致

    葡萄园

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vineyet、

    感谢您的回答。

    目前,拖延的原因似乎仍然不清楚。
    采用新的不同方法进行评价的结果是什么?

    此致、
    Hidekazu  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉耽误你的时间。  

    我已经使用 AM574IDK 上的 Nimu_BasicExample_idkAM574x_armExampleproject 模拟了该场景。 以下是我的测试结果:

    IDK 到 PC、6.321ms 内为327680字节

    PC 到 IDK、在4.356ms 内为327680字节

    这远低于25ms 的预期值、证明了硬件功能。

    我已添加修改的{pdk_directory}/packages/ti/transport/ndk/nimu/example/src/main_AM57xx.c 以供您参考。

    e2e.ti.com/.../7563.main_5F00_AM57xx.c

    我还在尝试在 Ubuntu 18.04上测试时使用的 PC 客户端应用程序。

    e2e.ti.com/.../6014.client.c

    我还在为测试准备 Wireshark 日志。

    e2e.ti.com/.../trace2_5F00_proper_5F00_successfull.pcapng

    此致、

    Tanmay