On domestic platforms the pitfalls are mostly peripheral — dependencies, kernel settings, storage. This guide covers architecture, dependency handling, performance tuning and a troubleshooting checklist for Kylin V10 and Kunpeng/Phytium.
The observability platform's own code is architecture-neutral; the real traps live in the runtime environment. On ARM, some dependencies ship no prebuilt binaries, kernel defaults are conservative, and domestic storage behaves differently from the x86 gear your team knows. This post turns what we hit on Kylin V10 with Kunpeng 920 and Phytium 2000 into a checklist.
The first step is getting the architecture right. Confirm whether the CPU is ARM64 — Kunpeng and Phytium are ARM64, while Zhaoxin and Hygon are x86 — and match your images and binaries to it. Don't force an amd64 package onto ARM. Observe ships both amd64 and arm64 images, so pull the right tag for containerized deployments.
For deployment shape, a single-node containerized install is fine for a pilot. For production, prefer multiple replicas with local disks. An observability platform is write-heavy, and disk IOPS plus sequential write bandwidth are the main bottleneck. Put hot data on local NVMe rather than a slow shared volume — it's far more stable.
On ARM, most problems are dependency problems. Containers sidestep a lot of system-library versioning issues, but the host still needs attention:
vm.max_map_count defaults to 65530, which is too low for mmap-heavy logging and indexing components — raise it to 262144ulimit -n defaults to 1024; both collection and storage components need it at 65535Whether the OS is UnionTech UOS or Kylin, the commands are essentially the same — edit /etc/sysctl.conf and /etc/security/limits.conf.
Domestic environments often pair with domestic disk arrays whose performance varies widely. Before going live, run a write benchmark with fio — 4K random writes and 1M sequential writes — and confirm the IOPS and bandwidth can absorb your projected write volume. If the numbers fall short, look at the array's cache policy and stripe width before blaming the software.
For the platform itself, tune in three directions:
Domestic migration is more than swapping packages; every difference in the environment gets amplified at write peaks. Running through the checklist before go-live is a lot cheaper than debugging during an incident.