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

Deploying Ju Jing OBSERVE on a Xinchuang Stack: Kylin + Kunpeng + Dameng

A worked deployment of Ju Jing OBSERVE on Kylin V10 + Kunpeng 920 + Dameng DM8: component choices, Dameng initialization and dialect config, OS tuning, benchmark results, and acceptance advice.

Deploying Ju Jing OBSERVE on a Xinchuang Stack: Kylin + Kunpeng + Dameng

In Xinchuang (domestic-innovation) environments, the question isn't "does it run" but "does it stay stable, hold its performance, and cover the ecosystem." Ju Jing OBSERVE fully supports domestic CPUs, operating systems, and databases. Below is a worked deployment on Kylin V10 + Kunpeng 920 + Dameng DM8, plus the pitfalls that matter.

1. Component selection

The combination we validated in production:

| Component | Choice |
|-----------|--------|
| CPU | Kunpeng 920 (ARM64) |
| OS | Kylin V10 SP3 (aarch64) |
| Database | Dameng DM8 (config, alerts, users) |
| Object storage | MinIO (S3-compatible, for cold log data) |

Ju Jing OBSERVE is written in Go, so cross-compiling with GOOS=linux GOARCH=arm64 yields a clean ARM64 binary — there's no instruction-set compatibility issue. Official images ship both amd64 and arm64 tags; just pull the matching one. Plan object storage separately: cold log data grows fast, and MinIO scales out by adding nodes — don't let it fight the search cluster for disk. Deploy the collection agent as a DaemonSet on every business node, reading local logs over loopback so you don't burn cross-node bandwidth.

2. Initializing Dameng

Dameng differs from MySQL/PostgreSQL in its JDBC URL and SQL dialect. Three things to watch during initialization.

Create the user first (the default database is DAMENG):

CREATE USER jjhub IDENTIFIED BY "JjHub@2026";
GRANT DBA TO jjhub;

In the Ju Jing config, point the datasource at Dameng and declare the dialect explicitly:

datasource:
  driver: dm.jdbc.driver.DmDriver
  url: jdbc:dm://10.0.2.11:5236?schema=JJHUB
  username: jjhub
  password: "JjHub@2026"
  dialect: dm

After startup, run the bundled migrate command to create tables automatically. Don't hand-import SQL — Dameng rejects parts of MySQL syntax (backticks, ON DUPLICATE KEY), and manual imports fail unpredictably. Dameng's column-length semantics also differ from MySQL; if a table reports length overflow, check whether you counted characters as bytes. Create the database with a UTF-8 charset, or Chinese alert rules and comments will come out garbled.

3. Kylin OS tuning

  • File handles. Log collection is high-concurrency small-file I/O; the default ulimit -n of 1024 is nowhere near enough. Raise it: echo "root soft nofile 65535" >> /etc/security/limits.conf.
  • Clock. Xinchuang data centers often skip NTP, and clock drift breaks traces and alerts, which both depend on time. Sync it.
  • SELinux / hardening. Kylin's SELinux or the graded-protection hardening policies will block the agent's listening ports. Temporarily relax with setenforce 0, or add a semanage rule for the agent ports.
  • Filesystem. Use XFS with noatime on the search cluster's data directory. Log writes are small random writes, and noatime removes metadata updates on every read and write.
  • Transparent huge pages (THP). Dameng and the search processes are sensitive to THP. Disable it with echo never > /sys/kernel/mm/transparent_hugepage/enabled to avoid intermittent memory-reclaim stalls.

4. Performance validation

On a dual-socket Kunpeng 920 (128 cores, 512 GB RAM), we benchmarked ingest and search:

  • Ingest: a single agent sustained 80,000 log lines/second at roughly 30% CPU.
  • Search: time + keyword search across 100 million logs returned with P99 latency of 1.2 seconds.
  • vs x86: within 10% of a comparable x86 box; no hot spot needed special tuning.

We also watched GC pauses during the run: at 80,000 lines/second the Go processes saw P99 GC pauses around 3ms, negligible for search latency. Dameng drops write QPS by about 15% when archive mode is on; if config and alert write volume is low, turn archive off and rely on manual backups instead.

The conclusion: this Xinchuang combination handles medium-scale production load comfortably. "Domestic = slower" doesn't hold here. The only things to plan for are Dameng licensing and storage growth — tier cold data to object storage early.

5. Notes

  • Check the version matrix. Kylin V10 has SP1/SP2/SP3; Ju Jing's "Xinchuang" page lists validated version combinations. Don't force a major version mismatch.
  • Get the compatibility certificate before purchase, and during acceptance test three things separately — deployment on Xinchuang, functionality, and performance — instead of signing off once the basic features run.
  • Plan Dameng backup and failover up front. Config and alert rules live in Dameng; if the database goes down, your monitoring system must not go down with it.