← Back to blog
Xinchuang 4 min read 炬鲸团队

Deploying Jujing on Kunpeng + Kylin V10 + DM8

A full walkthrough of deploying Jujing on Kunpeng 920 + Kylin V10 + DM8, covering DM8 initialization, service deployment, ARM compatibility notes, and measured performance figures.

Environment and Component Choices

The components for this domestic stack: a Kunpeng 920 CPU (ARM64), Kylin V10 SP3 server edition (kernel 4.19), and DM8 replacing MySQL for storing configuration and alert rules. Optionally, TongWeb from TongTech replaces Tomcat. The whole chain has no x86 dependency.

Install and Initialize DM8

DM8 can be installed via GUI or the dminstall command line, then initialized with dminit. Key parameters: 32K page size, UTF-8 charset, and case-sensitive mode enabled. Then create the tablespace and user:

CREATE TABLESPACE jjhub DATAFILE 'jjhub.dbf' SIZE 512 AUTOEXTEND ON;
CREATE USER jjhub IDENTIFIED BY 'Jjhub@2024' DEFAULT TABLESPACE jjhub;
GRANT DBA TO jjhub;

Jujing connects to DM8 over JDBC: set the driver to dm.jdbc.driver.DmDriver and the URL to jdbc:dm://127.0.0.1:5236. DM8 covers most MySQL syntax, but paging and auto-increment columns differ, so use the official DM8 initialization script rather than forcing a MySQL script through.

Deploy the Jujing Service

  1. Extract the package to /opt/jjhub and confirm you have the aarch64 binaries, not the x86 build.
  2. Edit config.yaml for the database connection and storage path, pointing log storage at a dedicated data disk rather than the system disk.
  3. Register a systemd service with auto-start:
[Unit]
Description=Jujing OBSERVE
After=network.target

[Service]
ExecStart=/opt/jjhub/bin/jjhub-server
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. The first start creates tables automatically; watch the startup log to confirm success. Failures usually come down to DM8 permissions or the case-sensitivity parameter.

ARM Compatibility and Performance Notes

  • Use kona-jdk (co-developed by Kylin and Huawei) or an OpenJDK aarch64 build. Running an x86 image through a translation layer cuts performance by more than half.
  • DM8's default MAX_SESSIONS is too small for peak log ingestion; raise it above 5000.
  • Use domestic NVMe SSDs with ext4, and run fio benchmarks before production instead of blindly applying xfs hugepage settings.
  • Measured result: a single 8C32G Kunpeng node ingesting logs from 200 nodes handles roughly 400 million log lines per day with CPU steady under 60%. Query and alert latency is on par with x86 hardware of the same class.

The real risk in a domestic stack is not performance but "looks compatible, differs subtly." Before going live, run a 72-hour test with real traffic and watch the database connection pool and any timezone-related fields closely.