Lanzamiento de la plataforma beta pública RISC-V · Evaluación de la adaptación de la base de datos en el servidor RISC-V

prefacio

El último número habló sobre la prueba de rendimiento de MySQL de YCSB en el servidor RISC-V ( plataforma beta pública RISC-V lanzada · Uso de YCSB para probar el rendimiento de MySQL en SG2042 ). En este artículo, continuamos discutiendo la base de datos RISC-V+. Aplicaciones en profundidad. En esta edición, continuaremos utilizando la plataforma HS-2 para probar la compatibilidad del software de base de datos en el servidor RISC-V.

Las bases de datos que participan en este experimento son las siguientes:

Redis

MongoDB5

PostgreSQL

TiDB

MySQL/MariaDB

La configuración de la máquina experimental es la siguiente:

Procesador: SG2042 (64 núcleos)

Memoria: 32GB

Sistema operativo: Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)

一、MySQL/ MariaDB

En el número anterior, para probar el software de prueba de rendimiento YCSB (Yahoo! Cloud Serving Benchmark), se probó la compatibilidad de MySQL en el servidor RISC-V.

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.

Instale MySQL directamente usando el administrador de paquetes:

sudo apt-get install mysql-server

Por supuesto, además de instalar el administrador de paquetes, también intenté compilar e instalar MySQL, pero el resultado fue que la compilación falló, por lo que MySQL no se puede instalar directamente mediante la compilación, sino que se deben aplicar los parches relevantes antes de la compilación. y luego compilado nuevamente.

Al mismo tiempo, también se probó la compatibilidad de MariaDB, un sistema general de gestión de bases de datos relacionales de código abierto, en el servidor RISC-V. Es uno de los servidores de bases de datos más populares del mundo, MariaDB se publica bajo la licencia de código abierto GPLv2 y se garantiza que seguirá siendo de código abierto.

Primero intente instalar directamente a través del administrador de paquetes:

sudo apt-get install mariadb-server

Después de instalar y ejecutar normalmente a través del administrador de paquetes, intente instalar MariaDB compilando.

Primero descargue el paquete de código fuente de MariaDB y descomprímalo:

obtener

https://dlm.mariadb.com/3239838/MariaDB/mariadb-11.0.2/source/mariadb-11.0.2.tar.gz

Ingrese a la carpeta del código fuente de MariaDB:

tar -xzvf mariadb-11.0.2.tar.gz 

Ejecute cmake y compile:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/home/mariadb 
-DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci
make -j64
sudo make install -j1

 

Abra el archivo de configuración y edite:

vim /home/mariadb/my.cnf

imagen

Inicie el servidor y pruebe si puede conectarse al servidor de la base de datos:

sudo /usr/local/mariadb/bin/mysqld_safe --user=mysql --skip-grant-tables
/usr/local/mariadb/bin/mariadb

imagen

 ¡La conexión fue exitosa!

2. Redis

El siguiente es Redis, que se llama REmote DIctionary Server (Redis), escrito por Salvatore Sanfilippo. Es un código abierto, escrito en lenguaje ANSI C, cumple con el protocolo BSD, admite red, puede ser una base de datos de almacenamiento de par clave-valor (clave-valor) de persistencia opcional, distribuida y basada en memoria, y proporciona API en varios idiomas.

A Redis a menudo se le llama servidor de estructura de datos porque los valores pueden ser de tipos como String, Hash, lista, conjuntos y conjuntos ordenados.

Instale Redis a través de APT:

sudo apt install redis-server

Luego inicie el servicio Redis:

sudo servcie redis-server start

Ingrese redis-cli:

redis-cli

Si puede ingresar a Redis Shell, la instalación se realizó correctamente.

Compile e instale:

obtener 

https://github.com/redis/redis/archive/refs/tags/7.0.12.tar.gz

Abrir la cremallera:

tar -xzvf 7.0.12.tar.gz 

Ingrese a la carpeta Redis:

cd redis-7.0.12/

Compilar:

make BUILD_TLS=yes USE_SYSTEMD=yes -j64

Pruébelo (opcional):

make test

Instalar:

sudo make install

Inicie el servidor:

redis-server
redis-server &(后台运行)
运行redis-benchmark压力测试(10万次请求,20个客户端),以CSV文件形式输出。
redis-benchmark -n 100000 -c 20 --csv

 El resultado es el siguiente:

imagen

 Por lo tanto, Redis se puede instalar a través de APT y compilar.

3.MongoDB

El siguiente es MongoDB, que es una base de datos basada en almacenamiento de archivos distribuidos. Escrito en lenguaje C++. Diseñado para proporcionar soluciones de almacenamiento de datos escalables y de alto rendimiento para aplicaciones WEB. MongoDB es un producto entre una base de datos relacional y una base de datos no relacional, es la más rica en funciones entre las bases de datos no relacionales y se parece más a una base de datos relacional.

Instale MongoDB a través de APT:

sudo apt install mongodb

El resultado indica que la instalación mediante apt no es compatible, por lo que elegimos compilar e instalar desde el código fuente.

Descargue el paquete de código fuente:

obtener 

https://fastdl.mongodb.org/src/mongodb-src-r6.0.8.tar.gz

abrir la cremallera:

tar -xzvf mongodb-src-r6.0.8.tar.gz

Ingrese a la carpeta del código fuente de mongodb:

cd mongodb-src-r6.0.8/

Compilar:

python3 buildscripts/scons.py install-mongod -j64

Como resultado, la compilación falló:

imagen

Después de instalar los paquetes relevantes, todavía no se puede compilar.

4.PostgreSQL

Luego está PostgreSQL, un servidor de base de datos relacional de objetos (ORDBMS) gratuito lanzado bajo una licencia BSD flexible. Los desarrolladores de PostgreSQL lo pronuncian post-gress-QL. El lema de PostgreSQL es "la base de datos relacional de código abierto más avanzada del mundo".

Instalar a través de APT:

apt-get install postgresql postgresql-client

tener una prueba:

sudo -i -u postgres
psql

imagen

 Compile e instale:

Descargar código fuente:

obtener 

https://ftp.postgresql.org/pub/source/v15.3/postgresql-15.3.tar.gz

Abrir la cremallera:

tar -xzvf postgresql-15.3.tar.gz

Crea una nueva carpeta de páginas:

mkdir pg

Ingresar:

cd postgresql-15.3/

Configuración:

./configure --prefix=/home/perfxlab01/pg

Compile e instale:

make world -j64
make install-world -j64
进入~/pg/

 Inicialice la base de datos:

./bin/initdb -D ./data/

Inicie la base de datos:

bin/pg_ctl -D ./data/ -l logfile start

Después de iniciar exitosamente la base de datos, el siguiente paso es probar el rendimiento de la base de datos. PostgreSQL, al igual que Redis, también viene con un programa de prueba de estrés.

Cree una nueva base de datos para pruebas de estrés:

bin/psql -U postgres -h localhost
(进入psql shell)
CREATE DATABASE test;
(退出psql shell)

Inicialice la base de datos para las pruebas de estrés:

bin/pgbench -i test

Inicie la prueba de estrés:

bin/pgbench -c 100 -T 300 -j 64 test

Los resultados de la prueba de estrés son los siguientes:

pgbench (15.3)
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1
query mode: simple
number of clients: 100
number of threads: 64
maximum number of tries: 1
duration: 300 s
number of transactions actually processed: 93122
number of failed transactions: 0 (0.000%)
latency average = 322.405 ms
initial connection time = 156.199 ms
tps = 310.168586 (without initial connection time)
statement latencies in milliseconds and failures:
0.005           0  \set aid random(1, 100000 * :scale)
0.002           0  \set bid random(1, 1 * :scale)
0.002           0  \set tid random(1, 10 * :scale)
0.002           0  \set delta random(-5000, 5000)
0.201           0  BEGIN;
1.144           0  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
0.429           0  SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
290.788           0  UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
26.624           0  UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
0.432           0  INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
2.556           0  END;

5.TiDB

El siguiente es TiDB, TiDB es una base de datos relacional distribuida de código abierto diseñada y desarrollada independientemente por PingCAP. La base de datos está escrita en lenguaje Go.

Descargue la última versión del paquete de código fuente TiDB, descomprímalo e ingrese a la carpeta del código fuente, luego compile:

tar -xzvf tidb-7.1.1.tar.gz
cd tidb-7.1.1/
make

Como resultado, la compilación falló:

imagen

Al mismo tiempo, también intenté instalarlo mediante un script, pero el resultado fue que la arquitectura no es compatible.

Resumir:

A través de este experimento, se obtuvieron los siguientes resultados.

base de datos

Instalación de APT/instalación de script

compilar e instalar

Redis

MongoDB

×

×

PostgreSQL

TiDB

×

×

mysql

×

mariadb

1. En el último número, mencioné que MySQL no admite la instalación directa mediante compilación. Solo se puede compilar aplicando el parche proporcionado por Ubuntu (consulte El servidor MySQL no se puede compilar en RISC-V 64 para obtener más detalles), mientras que MariaDB puede instalarse mediante compilación o administración de paquetes.Hay dos formas de instalar el dispositivo. Sin embargo, después de la compilación e instalación, se requiere una configuración manual adicional (consulte los materiales de referencia para obtener tutoriales), mientras que el sistema de instalación a través del administrador de paquetes lo configurará automáticamente y lo usará de inmediato, por lo que se recomienda instalar MySQL. /MariaDB a través de APT (administrador de paquetes) Más ahorro de tiempo y comodidad.

2. Entre los cuatro software de bases de datos probados actualmente, MongoDB solo tiene un paquete de software adecuado para Ubuntu 22.04 LTS, mientras que TiDB no admite riscv64 ni en la instalación de scripts ni en la instalación compilada. Por lo tanto, esperamos que se fortalezca el soporte de estas dos bases de datos en la arquitectura RISC-V.

3. Los participantes más destacados en esta prueba de compatibilidad son PostgreSQL y Redis, ambos se compilaron sin problemas y pueden ejecutarse normalmente. Muestra que la compatibilidad de estas dos bases de datos con riscv64 es muy buena. Especialmente para PostgreSQL, algunos miembros de la comunidad en PostgreSQL BuildFarm han compilado con éxito utilizando el compilador en la plataforma riscv64. Por lo tanto, es inevitable que PostgreSQL pueda compilarse y ejecutarse con éxito en la plataforma riscv64.

4. Tanto Redis como PostgreSQL vienen con sus propias herramientas de prueba de estrés. Redis-benchmark de Redis establece los parámetros de la prueba de estrés y luego simplemente espera a que se publiquen los resultados de la prueba. En comparación con redis-benchmark, pgbench de PostgreSQL solo necesita configurar el estrés. parámetros de prueba Agregue los dos pasos de crear la base de datos de prueba e inicializar la base de datos de prueba antes. Por lo tanto, el programa de prueba de esfuerzo incorporado es una ventaja para estas dos bases de datos, porque el uso del programa de prueba de esfuerzo incorporado puede ayudar a los usuarios a comprender el rendimiento del servidor en términos de bases de datos.

Referencias:

Introducción a MariaDB

https://mariadb.org/zh/

tutorial de redis

https://www.runoob.com/redis/redis-tutorial.html

Sitio web oficial de MongoDB

https://www.mongodb.com/zh-cn

Comunidad de desarrolladores de MongoDB

https://www.mongodb.com/community/forums/t/when-to-upload-version-on-debian/181125

Paquete binario mongodb-server en Ubuntu Focal riscv64

https://launchpad.net/ubuntu/focal/riscv64/mongodb-server

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

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

Implementar la base de datos Mariadb en Linux (compilación e instalación del código fuente)

https://www.cnblogs.com/DragonStart/p/10823222.html

Estado de la granja de compilación de PostgreSQL

https://buildfarm.postgresql.org/cgi-bin/show_status.pl

Historial de estado de PostgreSQL BuildFarm

https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=boomslang&br=REL_15_STABLE

TiDB

https://docs.pingcap.com/zh/tidb/stable

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

  10. Lanzamiento de la plataforma de prueba pública RISC-V · Prueba de 7 zip

  11. Publicación del informe de prueba CoreMark de la plataforma de prueba pública RISC-V

  12. Lanzamiento de la plataforma beta pública RISC-V · Evaluación de adaptación de la base de datos en el servidor RISC-V (este artículo)

Bienvenido a enviar artículos y enviarlos a [email protected]

Supongo que te gusta

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