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

Full-Stack Xinchuang Deployment: JuJing OBSERVE on Loongson, Kunpeng, and DM8

Deployment validation and performance data for JuJing OBSERVE on Loongson 3A5000, Kunpeng 920, UOS/Kylin, and DM8/KingbaseES — with the config gotchas that matter.

Why Xinchuang adaptation matters

In finance, government, and energy procurement, "full-stack domestic" is no longer a bonus — it's a hard requirement. Logging and monitoring sit at the bottom of the infrastructure stack. If they can't run on domestic CPUs and operating systems, the upper layers being "xinchuang" doesn't help: you'd have no tool to debug with at all.

JuJing OBSERVE has maintained Xinchuang adaptation as a separate release line since 2024, running a full-matrix regression every quarter. Here are the results of the latest round.

Hardware and OS compatibility matrix

This round covered four CPU families and three operating systems:

| CPU | Arch | OS | Result |
|-----|------|----|--------|
| Loongson 3A5000 | LoongArch | UOS V20 | ✅ Pass |
| Kunpeng 920 | ARM64 | Kylin V10 SP3 | ✅ Pass |
| Hygon C86 | x86_64 | UOS V20 | ✅ Pass |
| Phytium S2500 | ARM64 | Kylin V10 SP3 | ✅ Pass |

The all-in-one deployment (collection + search + alerting) passed 72-hour stability tests on all four, with no memory leak growth.

Database adaptation: DM8 and KingbaseES

The search layer uses a self-built storage engine, but metadata (users, alert rules, dashboard configs) needs a relational database. This round validated DM8 and KingbaseES V8:

  1. DM8: swap in the dm driver, turn off compatibleMode=ORACLE, and use UTF-8 throughout. The biggest gotcha is that DM8 is case-insensitive by default — column names get uppercased after table creation, so queries must double-quote field names.
  2. KingbaseES V8: PostgreSQL-compatible mode works out of the box; just switch to the kingbase8 driver and set compatibleLevel=PG in the connection string.

For both, keep the metadata database separate from the search data store to avoid I/O contention.

Performance results

On a single Kunpeng 920 node (64 cores, 256 GB RAM), ingestion holds steady at 180,000 log lines per second, and a filtered query over one billion lines has P99 latency of 1.2 seconds. That's a 10–15% gap versus x86, mostly from JVM branch prediction and GC behavior on ARM — largely closed by a larger heap and tuned G1 parameters.

Deployment gotchas

  • Domestic OSes disable some kernel parameters by default. Confirm vm.max_map_count and ulimit -n are large enough before deploying, or writes fail with "too many open files".
  • Sync time with chrony pointed at an internal NTP — don't rely on the public internet; Xinchuang environments are often physically isolated.
  • Prefer RPM/DEB packages over containers; container runtimes in some Xinchuang environments are old.
  • Before a graded-protection or crypto audit, set retention policies for audit and operation logs ahead of time — it saves a lot of remediation work.