2

我们在 Crystal/Kemal 上运行一个生产系统。调用服务经常看到连接被拒绝错误。我想知道如何才能在 HTTP::Server/Kemal 的运行实例中看到更多见解/指标。我指的是运行/等待的光纤数量(超出允许的最大数量),连接的积压有多大,有多少被拒绝等等。

4

1 回答 1

1

内置工具:crystal tool -h

    context                  show context for given location
    expand                   show macro expansion for given location
    format                   format project, directories and/or files
    hierarchy                show type hierarchy
    implementations          show implementations for given call in location
    types                    show type of main variables

常用工具:

  1. lsof +p $(pidof <process_name>)— 显示进程的连接/套接字。
  2. ss -ier— 显示内部套接字统计信息。
  3. strace -p $(pidof <process_name>) -s 300 -yyfq— 过程自省的有用工具。
  4. tcpdump & wireshark— 转储和探索网络数据包
  5. ngrep— 与 grep 类似,但用于网络数据包。
  6. LLDB— 基于 LLVM 的应用程序的本机调试器(教程
  7. CodeLLDB— 基于 LLDB 的原生 VSCode 调试器。

不要忘记crystal build ./app.cr --debug

于 2020-08-05T08:24:15.390 回答