YukunJ/Turtle

运行benchmark出现错误

Closed this issue · 4 comments

benchmark.sh: line 17: ./webbench: No such file or directory

YukunJ commented

Hi:
Thanks for pointing this out. You might want to cd into the ./webbench folder and run make first. It will build the webbench, the third party pressure test tool. And you may want to tune the test time and concurrent processes, depending on your machine's hardware. (parameters can be found in CMakelists.txt.
I will update the bash script to run this step automatically shortly after.

抱歉 我还有个问题 我使用的是arch系统 运行benchmark的时候找不到#include <rpc/types.h> 于是我想在benchmark target下面添加目录 但我觉得这不是一种最优的方式 请问有别的方式添加吗 我直接用TARGET_INCLUDE_DIRECTORIES(
benchmark
/usr/include/tirpc
) 会发生错误
下面是暂时能够运行的代码 有点ugly

SET(WEBBENCH_DIR ${PROJECT_SOURCE_DIR}/webbench /usr/include/tirpc)
IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    SET(CONCURRENCY 10500)  # concurrent client number
    SET(DURATION 5)  # stress test duration
ELSEIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    SET(CONCURRENCY 105)
    SET(DURATION 10)
ENDIF()

ADD_CUSTOM_TARGET(benchmark
        WORKING_DIRECTORY ${WEBBENCH_DIR}
        COMMAND sh /home/faker/Desktop/learn/Turtle/webbench/benchmark.sh ${CONCURRENCY} ${DURATION}
        DEPENDS http_server
        )
YukunJ commented

It's great that you can make it work. This is definitely not your problem. (probably the webbench's author's problem for not making its build compatible)

I believe on Ubuntu Linux, the package <rpc/*.h> comes pre-installed. That's why when you are running on a different system, this might become a small problem.

A long-term solution is to include the webbench as a sub-directory into Turtle's CMakeList, and supply necessary packages if needed.

But this might not worth the effort. As long as you can run http_server on your machine, you can boot up any Linux machine that can run webbench and execute webbench from there. The two processes http_server and webbench do not need to run on the same server.

YukunJ commented

by sanity check, https://github.com/YukunJ/Turtle/blob/main/webbench/benchmark.sh#L3 indeed already builds the webbench tool