- Asegúrese de que su máquina host cumpla los requisitos previos de QPL
- deflate_qpl está habilitado de forma predeterminada durante la compilación con cmake. Si lo cambia accidentalmente, vuelva a comprobar la bandera de compilación: ENABLE_QPL=1
- Para conocer los requisitos generales, consulte las instrucciones generales de compilación de ClickHouse
Lista de archivos
benchmark_sample en qpl-cmake incluyen ejemplos para ejecutar el benchmark con scripts de Python:
client_scripts contiene scripts de Python para ejecutar benchmarks habituales, por ejemplo:
client_stressing_test.py: Script de Python para pruebas de estrés de consultas con [1~4] instancias de servidor.queries_ssb.sql: Este archivo enumera todas las consultas para Star Schema Benchmarkallin1_ssb.sh: Este script de shell ejecuta automáticamente todo el flujo de trabajo del benchmark en uno solo.
database_files indica que almacenará archivos de base de datos según el códec lz4/deflate/zstd.
Ejecutar automáticamente el benchmark de Star Schema:
./output/
En caso de que se produzca algún fallo, ejecute manualmente el benchmark como se indica en las secciones siguientes.
Definición
Entorno
- CPU: Sapphire Rapid
- Consulte los requisitos del SO en System Requirements for QPL
- Consulte la configuración de IAA en Accelerator Configuration
- Instale los módulos de Python:
Generar datos brutos
dbgen para generar 100 millones de filas de datos con los parámetros:
-s 20
Se espera que archivos como *.tbl se generen en ./benchmark_sample/rawdata_dir/ssb-dbgen:
Configuración de la base de datos
Connected to ClickHouse server, lo que significa que el cliente estableció correctamente la conexión con el servidor.
Complete los tres pasos siguientes mencionados en Star Schema Benchmark
- Crear tablas en ClickHouse
- Insertar datos. Aquí debe usarse
./benchmark_sample/rawdata_dir/ssb-dbgen/*.tblcomo datos de entrada. - Convertir “star schema” en un “flat schema” desnormalizado
Benchmark con una sola instancia
- Antes de comenzar el benchmark, desactive C6 y establezca el gobernador de frecuencia de la CPU en
performance
- Para eliminar el impacto de la limitación de memoria entre sockets, usamos
numactlpara fijar el servidor en un socket y el cliente en otro socket. - Una sola instancia significa un solo servidor conectado a un solo cliente
QPS_Final y recopile las estadísticas
Benchmark con múltiples instancias
- Para reducir el impacto de las limitaciones de memoria causadas por un número excesivo de hilos, recomendamos ejecutar el benchmark con múltiples instancias.
- Múltiples instancias significa usar varios servidores (2 o 4) conectados a sus respectivos clientes.
- Los núcleos de un socket deben dividirse por igual y asignarse a cada servidor.
- Para múltiples instancias, debe crear una carpeta nueva para cada codec e insertar el conjunto de datos siguiendo pasos similares a los de una sola instancia.
- En el lado del cliente, debe iniciar ClickHouse con el puerto asignado durante la creación de la tabla y la inserción de datos.
- En el lado del servidor, debe iniciar ClickHouse con el archivo de configuración XML específico en el que se haya asignado el puerto. Todos los archivos de configuración XML personalizados para múltiples instancias se proporcionan en ./server_config.
- [TBL_FILE_NAME] representa el nombre de un archivo cuyo nombre coincide con la expresión regular: *. tbl en
./benchmark_sample/rawdata_dir/ssb-dbgen. --port=9001corresponde al puerto asignado a la instancia del servidor, que también está definido en config_lz4_s2.xml/config_zstd_s2.xml/config_deflate_s2.xml. Para más instancias, debe reemplazarlo por el valor 9002/9003, que corresponden a las instancias s3/s4, respectivamente. Si no lo asigna, el puerto predeterminado es 9000, que ya está en uso por la primera instancia.
2 de client_stressing_test.py corresponde al número de instancias. Si necesitas más instancias, debes sustituirlo por el valor 3 o 4. Este script admite hasta 4 instancias/
Ahora deberían mostrarse tres logs, como es de esperar:
QPS_Final y recopile las estadísticas.
La configuración del benchmark con 4 instancias es similar a la de las 2 instancias anteriores.
Recomendamos usar los datos del benchmark de 2 instancias como informe final para su revisión.