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
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
¡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:
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ó:
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
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ó:
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. .
-
Acerca del banco de pruebas público RISC-V
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
-
Lanzamiento de la plataforma beta pública RISC-V·Prueba completa del ancho de banda de transmisión
-
Lanzamiento de la plataforma beta pública RISC-V · Minecraft MohistMC
-
Lanzamiento de la plataforma beta pública RISC-V·El primer servidor WEB "¡Hola mundo RISC-V!"
-
Lanzamiento de la plataforma beta pública RISC-V·Cómo jugar k3s en SG2042
-
Lanzamiento del blog "RISC-V Growth Diary", ¿el primer blog que se ejecuta en el servidor RISC-V?
-
Lanzamiento de la plataforma beta pública RISC-V: Cómo jugar OpenMPI en SG2042
-
Lanzamiento de la plataforma beta pública RISC-V·Prueba completa de Unix Bench
-
Lanzamiento de la plataforma de prueba pública RISC-V · Prueba de 7 zip
-
Publicación del informe de prueba CoreMark de la plataforma de prueba pública RISC-V
-
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]