Lanzamiento de la plataforma beta pública RISC-V · Uso de YCSB para probar el rendimiento de MySQL en SG2042

Introducción al experimento:

YCSB (nombre completo: Yahoo! Cloud Serving Benchmark), esta herramienta de prueba de rendimiento está escrita en lenguaje Java ( esto también se mencionó en el artículo anterior de MC, si no lo ha visto, puede consultar el número anterior de MC ). Herramienta de prueba de rendimiento de bases de datos para nube o servidor, que cubre productos de bases de datos NoSQL comunes, como Cassandra, MongoDB, HBase, Redis, etc.

MySQL Database Service es un servicio de base de datos totalmente administrado para implementar aplicaciones nativas de la nube utilizando la base de datos de código abierto más popular del mundo. Está 100% desarrollado, administrado y respaldado por MySQL.

Por supuesto, la plataforma utilizada en este experimento sigue siendo la placa base universal Hengshan-2 (HS-2) RISC-V. Esta placa base es una placa base mATX estándar especialmente diseñada para desarrolladores. La placa base admite hasta 128 GB de memoria. A través de una PC -Las interfaces enriquecidas y la gran compatibilidad brindan a los desarrolladores una experiencia de desarrollo RISC-V a nivel de escritorio.

La placa base HS-2 está equipada con un procesador de 64 núcleos RISC-V de calidad de servidor doméstico (SG2042). SG2042 es el procesador RISC-V de mayor rendimiento actualmente en producción en masa. Está diseñado principalmente para las necesidades de la informática de alto rendimiento y es adecuado para escenarios de aplicaciones de gran potencia informática, como la informática científica, la informática de ingeniería, la informática de inteligencia artificial y la informática de fusión. .

Materiales experimentales:

Código fuente MySQL/MySQL

Un servidor SG2042 (HS-2)

Código fuente de TPCC

Código fuente YCSB

JDK (este tutorial utiliza el JDK 11 que viene con el sistema)

procedimiento del experimento:

Instalar MySQL:

Método 1: instalar directamente a través de apt

sudo apt install mysql-server

Método 2: compilar e instalar (esta ruta no funciona)

Descargar código fuente

obtener

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.34.tar.gz

Si wget es demasiado lento, puede descargarlo a su computadora con anticipación y luego cargarlo en el servidor.

descomprimir y entrar

tar -xzvf mysql-8.0.34.tar.gzcd mysql-8.0.34/mkdir buildcd build/

Dado que MySQL necesita impulso y la descarga directa de impulso es lenta, elegimos descargar impulso manualmente

https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz

Abrir la cremallera

tar -xzvf boost_1_77_0.tar.gz

Regrese a la carpeta de compilación de mysql:

cd mysql-8.0.34/build/

Ejecute cmake

sudo cmake .. -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci 
-DENABLED_LOCAL_INFILE=ON                                    -DWITH_SSL=system 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server  -DMYSQL_DATADIR=/usr/local/mysql/data 
-DMYSQL_TCP_PORT=3306                                        -DDOWNLOAD_BOOST=0 
-DWITH_BOOST=/home/perfxlab01/boost_1_77_0/

compilar e instalar

sudo make -j64

El resultado sugirió que el código en SHM_Buffer.hpp informó un error y luego descubrió que la compilación de la plataforma RISC-V no era compatible en ese momento, por lo que se recomienda instalar mysql a través del administrador de paquetes.

Tenga en cuenta que si ha desinstalado y reinstalado mysql antes, si no se puede acceder a sock, consulte:

https://stackoverflow.com/questions/70813122/getting-error-mysql-service-failed- Because-the-control-process-exited-with-erro

Si le indica que hay un error en mysql.cnf, simplemente ejecute el siguiente comando para solucionarlo. ​​​​​​​

sudo touch /etc/mysql/mysql.cnf(新建mysql.cnf文件)sudo dpkg --configure -a(重新配置)

Configuración de inicialización:

sudo mysql_secure_installation

imagen

 

No encontré permiso

Ingrese mysql

sudo mysql

Ejecute el siguiente comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '[你想设置的密码]';

Luego salga del shell mysql

A continuación ejecutamos la prueba YCSB.

ObtenerYCSB

https://hub.yzuu.cf/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

o

https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

Si la descarga de wget es demasiado lenta, primero puede usar la herramienta de descarga de subprocesos múltiples en la computadora para descargarla a la computadora y luego cargarla al servidor.

Después de cargarlo en el servidor, descomprima:

tar -xzvf ycsb-0.17.0.tar.gz

Ingrese al artículo de YCSB

cd ycsb-0.17.0/

Dado que YCSB está escrito en lenguaje Java, también necesitamos JDK. Sin embargo, el sistema ya proporcionó JDK11 por adelantado, por lo que no es necesario instalar otro JDK.

Inicie sesión en la base de datos y cree una base de datos y tablas:​​​​​​​

create database ycsb;use ycsb;CREATE TABLE usertable (YCSB_KEY VARCHAR(255) PRIMARY KEY,FIELD0 TEXT, FIELD1 TEXT,FIELD2 TEXT, FIELD3 TEXT,FIELD4 TEXT, FIELD5 TEXT,FIELD6 TEXT, FIELD7 TEXT,FIELD8 TEXT, FIELD9 TEXT);

imagen

 

Editar db.properties

cd jdbc-binding/conf/mv db.properties db.properties.bakvim db.properties

El contenido de db.properties es el siguiente:​​​​​​​

db.driver=com.mysql.cj.jdbc.Driverdb.url=jdbc:mysql://localhost:3306/ycsbdb.user=rootdb.passwd=[你的密码]

Luego descargue el controlador de base de datos requerido

obtener

https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.0.33.tar.gz

Descomprima e instale el controlador en la carpeta especificada:​​​​​​​

tar -xzvf mysql-connector-j-8.0.33.tar.gz cp mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/ycsb-0.17.0/jdbc-binding/lib/

Cargar datos:​​​​​​​

bin/ycsb load jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties -cp ./jdbc-binding/lib/mysql-connector-j-8.0.33.jar

Luego viene el tiempo de ejecución:​​​​​​​

bin/ycsb run jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties -cp ./jdbc-binding/lib/mysql-connector-j-8.0.33.jar

(Los dos pasos anteriores llevan mucho tiempo, puedes preparar una taza de café o ver una película un rato mientras esperas)

Si indica que Python informa un error, es porque YCSB usa código Python 2. Aunque algunas personas intentan fusionar el soporte de Python3 con el almacén principal, no se ha fusionado (0.17.0 todavía usa Python 2).

Instale python2 primero

sudo apt install python2

Cambiar enlace

sudo rm /usr/bin/pythonsudo ln -s /usr/bin/python2 /usr/bin/python

tener una prueba:

python --version

Si solicita Python 2.7.18, significa que el enlace se cambió correctamente a Python 2.

Luego intente cargar los datos nuevamente y ejecute la puntuación.

Resultados de referencia:

[OVERALL], RunTime(ms), 1180970
[OVERALL], Throughput(ops/sec), 84.67615604122035
[TOTAL_GCS_Copy], Count, 127
[TOTAL_GC_TIME_Copy], Time(ms), 2214
[TOTAL_GC_TIME_%_Copy], Time(%), 0.18747300947526185
[TOTAL_GCS_MarkSweepCompact], Count, 6
[TOTAL_GC_TIME_MarkSweepCompact], Time(ms), 526
[TOTAL_GC_TIME_%_MarkSweepCompact], Time(%), 0.044539658077681905
[TOTAL_GCs], Count, 133
[TOTAL_GC_TIME], Time(ms), 2740
[TOTAL_GC_TIME_%], Time(%), 0.23201266755294375
[READ], Operations, 49947
[READ], AverageLatency(us), 1485119.70881134
[READ], MinLatency(us), 20192
[READ], MaxLatency(us), 66584575
[READ], 95thPercentileLatency(us), 3217407
[READ], 99thPercentileLatency(us), 3725311
[READ], Return=OK, 49947
[CLEANUP], Operations, 100
[CLEANUP], AverageLatency(us), 207285.48
[CLEANUP], MinLatency(us), 4828
[CLEANUP], MaxLatency(us), 6111231
[CLEANUP], 95thPercentileLatency(us), 999935
[CLEANUP], 99thPercentileLatency(us), 1299455
[UPDATE], Operations, 50053
[UPDATE], AverageLatency(us), 609746.7518030887
[UPDATE], MinLatency(us), 22224
[UPDATE], MaxLatency(us), 2666495
[UPDATE], 95thPercentileLatency(us), 1309695
[UPDATE], 99thPercentileLatency(us), 1539071
[UPDATE], Return=OK, 50053

Resumir:

A juzgar por los resultados de la puntuación actual, SG2042 es relativamente bueno en aplicaciones de bases de datos, pero dado que YCSB usa Python 2 y Python 2 dejó de ser compatible el 1 de enero de 2020, también se espera que YCSM migre a Python 3 lo antes posible.

Referencias:

Sitio web oficial chino de MySQL:

https://www.mysql.com/cn/

documentación jdbc para YCSB

https://github.com/brianfrankcooper/YCSB/tree/master/jdbc

Porte ycsb a Python3 y también hágalo compatible con Python2 #1421(Github)

https://github.com/brianfrankcooper/YCSB/pull/1421

El servidor MySQL no se puede construir en RISC-V 64

https://bugs.mysql.com/bug.php?id=100356

Fin del texto


  • Acerca de HS-2

La placa base universal HS-2 RISC-V es una placa base mATX estándar diseñada para desarrolladores desarrollada conjuntamente por Pengfeng Technology y sus socios. Está preinstalada con un paquete de software personalizado y desarrollado por Pengfeng Technology para servidores de alto rendimiento RISC-V. Incluye varios puntos de referencia estándar, un compilador GCC que admite la extensión V, una biblioteca informática, middleware y una variedad de aplicaciones de servidor típicas.

La placa base universal HS-2 RISC-V está equipada con un procesador doméstico RISC-V de 64 núcleos (SG2042). SG2042 es el procesador RISC-V de mayor rendimiento actualmente en producción en masa. Está diseñado principalmente para las necesidades de la informática de alto rendimiento y es adecuado para escenarios de aplicaciones de gran potencia informática, como la informática científica, la informática de ingeniería, la informática de inteligencia artificial y la informática de fusión. .

imagen

  • Acerca del banco de pruebas público RISC-V

    imagen

Plataforma de nube de prueba pública de procesador de alto rendimiento RISC-V · Guía de inicio rápido, enlace de descarga: https://www.kdocs.cn/l/cmnYcyFIlVRx

  • Serie de artículos sobre la plataforma de nube de prueba pública RISC-V

  1.  Lanzamiento de la plataforma beta pública RISC-V·Prueba completa del ancho de banda de transmisión

  2.  Lanzamiento de la plataforma beta pública RISC-V · Minecraft MohistMC

  3.  Lanzamiento de la plataforma beta pública RISC-V·El primer servidor WEB "¡Hola mundo RISC-V!"

  4.  Lanzamiento de la plataforma beta pública RISC-V·Cómo jugar k3s en SG2042

  5. Lanzamiento del blog "RISC-V Growth Diary", ¿el primer blog que se ejecuta en el servidor RISC-V?

  6. Lanzamiento de la plataforma beta pública RISC-V: Cómo jugar OpenMPI en SG2042

  7. Lanzamiento de la plataforma beta pública RISC-V: Compilación del kernel de Fedora Linux de forma nativa en RISC-V

  8.  Lanzamiento de la plataforma beta pública RISC-V·Prueba completa de Unix Bench

  9. Lanzamiento de la plataforma beta pública RISC-V·Uso de YCSB para probar el rendimiento de MySQL en SG2042 (este artículo)

Supongo que te gusta

Origin blog.csdn.net/weixin_45571628/article/details/132215927
Recomendado
Clasificación