Zum Hauptinhalt springen

Systemanforderungen

Dieses Dokument beschreibt die Hardware-, Betriebssystem- und Netzwerkanforderungen für den zuverlässigen Betrieb der PlantPulse Platform. Es basiert auf verifizierten Standard-Umgebungen.

Anforderungen auf einen Blick

KategorieMinimal (Entwicklung / Test)Standard (Produktion)Großformat
CPU16 vCPU32 vCPU48+ vCPU
Arbeitsspeicher64 GB128 GB256 GB+
OS-Festplatte200 GB256 GB512 GB
Datenfestplatte200 GB (SSD)1 TB (NVMe SSD)4 TB+ (NVMe SSD)
Netzwerk1 Gbps1 Gbps10 Gbps
OSRHEL/Rocky/Oracle 8.xRHEL/Rocky/Oracle 9.xIdentisch
JDKOpenJDK 21 LTSOpenJDK 21 LTSOpenJDK 21 LTS

Verifizierte Umgebung: Der Referenz-Produktions-Server wird mit 48 vCPU / 188 GB RAM / 4,8 TB NVMe SSD / RHEL 9 / Temurin OpenJDK 21.0.11 LTS betrieben.

Hardware

CPU

  • Empfohlen: 32 vCPU und höher (Intel Xeon, AMD EPYC, ARM Graviton usw.)
  • Die IIoT-Engine nutzt eine 36-Thread-Pipeline (engine.pipeline.threads)
  • Spark-Verteilungsanalyse nutzt zusätzlich PP_CLUSTER_CORES
  • Mehr Kerne erhöhen den gleichzeitigen Nachrichtendurchsatz ↑

Arbeitsspeicher

  • Minimum 128 GB · für Produktion empfohlen 256 GB
  • Der Speicher wirkt sich direkt auf die Cassandra- und Kafka-Leistung über den Page Cache aus
  • Cassandra Heap: 1/4 des Host-Speichers (Maximum 32 GB)
  • Container-Speicherlimit: DOCKER_PP_MEMORY bis 90 % des Host-Speichers möglich

Festplatte

Empfohlen: OS- und Datenfestplatte trennen: Die Trennung von OS-Festplatte (/) und Datenfestplatte (/data1) vereinfacht Sicherung, Skalierung und Fehler-Isolation.

/ # OS 디스크 (256 GB)
└── opt/kopens/ # PlantPulse 바이너리 설치

/data1/ # 데이터 디스크 (1 TB+ NVMe SSD)
├── pp-data/ # Cassandra · PostgreSQL · MinIO · Valkey
├── pp-temp/ # Spark / 처리 임시
└── pp-backup/ # 백업 산출물
EinhängepunktKapazitätFestplattentypZweck
/256 GBSSDOS, Binärdateien
/data11 TB+NVMe SSD erforderlichHauptdaten
/data2 ~ /dataN1 TB+NVMe SSD(Optional) Cassandra-Daten / commitlog-Trennung

Cassandra-Festplatte-Optimierung (erweitert)

In großflächigen Umgebungen führt die Trennung von commitlog und Daten auf separate Festplatte zu deutlich höherem Schreibdurchsatz.

/data1/pp-data/cassandra/data/ # SSTable (대용량 NVMe)
/data2/pp-data/cassandra/commitlog/ # commitlog (별도 NVMe, sync I/O)

Betriebssystem

Unterstützte Betriebssysteme

OSVersionVerifiziertEmpfohlen
Oracle Linux8.x, 9.xEmpfohlen
RHEL8.x, 9.xEmpfohlen
Rocky Linux8.x, 9.xEmpfohlen
AlmaLinux8.x, 9.x
Ubuntu20.04+
Amazon Linux2, 2023

Alle nachfolgenden Anweisungen basieren auf RHEL/Rocky/Oracle 9.x. Bei Verwendung von Ubuntu / Amazon Linux ersetzen Sie bitte nur die Paketbefehle (apt / yum) gemäß Ihrer Umgebung.

Java (JDK)

PlantPulse basiert auf Java 21 LTS. setup.sh / tools/java/ wird automatisch installiert.

$ java -version
openjdk version "21.0.11" 2026-04-21 LTS
OpenJDK Runtime Environment Temurin-21.0.11+10 (build 21.0.11+10-LTS)

Wenn eine manuelle Installation erforderlich ist:

# RHEL/Rocky/Oracle
dnf install -y java-21-openjdk java-21-openjdk-devel

# Ubuntu
apt-get install -y openjdk-21-jdk

Die JAVA_HOME Umgebungsvariable wird automatisch registriert, und alle Module verwenden JAVA_TOOL_OPTIONS="-Duser.language=${PP_LANG} -Duser.timezone=${PP_TZ}" für die einheitliche Anwendung.

Netzwerk / Hostname

Hostname

hostnamectl set-hostname plantpulse-prod-01

# /etc/hosts
vi /etc/hosts
# 첫 행 직후에 추가:
# 192.168.0.41 plantpulse-prod-01 plantpulse-prod-01.local

Statische IP-Adresse

Wenn sich die Server-IP ändert, werden Cluster- und Client-Verbindungen unterbrochen. Verwenden Sie daher unbedingt eine statische IP-Adresse.

# NetworkManager (RHEL 9+)
nmcli con mod ens33 ipv4.method manual \
ipv4.addresses 192.168.0.41/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns "168.126.0.1 8.8.8.8"
nmcli con up ens33

Zeitsynchronisation (erforderlich)

Verteilte Komponenten (Cassandra, Kafka usw.) sind sehr empfindlich gegenüber Zeitgenauigkeit zwischen den Knoten.

dnf install -y chrony
systemctl enable --now chronyd
chronyc tracking # 동기화 상태 확인
chronyc -a makestep # 즉시 동기화

OS-Tuning (erforderlich)

Die folgenden Werte werden von install.sh (One-Line- / Docker-Installation) automatisch angewendet. In manuellen Umgebungen stellen Sie die gleichen Werte bitte direkt ein.

Dateideskriptoren / Prozesslimits

# /etc/security/limits.conf
* - memlock unlimited
* - nofile 1048576
* - nproc 32768
* - as unlimited

Kernel-Parameter

# /etc/sysctl.conf (install.sh 자동 적용)
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 10
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 1024
vm.max_map_count = 1048576
vm.overcommit_memory = 0
fs.file-max = 1048576

sysctl -p /etc/sysctl.conf

Swap deaktivieren

Datenbank- / Java-Prozesse sollten Swap vermeiden.

swapoff --all
# /etc/fstab 의 swap 라인 주석 처리
sed -i '/swap/s/^/#/' /etc/fstab

SELinux

setup.sh wechselt automatisch zu permissive. Manuelle Änderung:

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

Native Bibliotheken

Bibliotheken zur Verbesserung der Cassandra-Leistung.

dnf install -y jna jemalloc jemalloc-devel zstd libpq

Festplatten-I/O-Tuning

NVMe SSD

# /etc/udev/rules.d/60-ioscheduler.rules
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
ACTION=="add|change", KERNEL=="sd*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"

# 즉시 적용
udevadm trigger

HDD (für Produktion nicht empfohlen)

echo mq-deadline > /sys/block/sdb/queue/scheduler
blockdev --setra 128 /dev/sdb

Firewall

install.sh aktiviert firewalld (systemctl enable --now firewalld) und öffnet die für die Platform erforderlichen Ports automatisch. Wenn die Firewall extern verwaltet wird (Unternehmens-Firewall / Cloud-Sicherheitsgruppe), überspringen Sie diesen Schritt nur mit SKIP_FW=1.

Beispiel für manuelle Freigabe:

systemctl enable --now firewalld
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=7443/tcp
firewall-cmd --permanent --add-port=4950/tcp
firewall-cmd --permanent --add-port=1883/tcp
firewall-cmd --permanent --add-port=1884/tcp
firewall-cmd --permanent --add-port=9092/tcp
firewall-cmd --permanent --add-port=9094/tcp
firewall-cmd --reload

Die vollständige Portliste finden Sie unter Portkonfigurationsinformationen.

Übergeordnete Firewall / Cloud-Sicherheitsgruppe: Da Unternehmens- / Cloud-Firewall separat ist, bitte dort ebenfalls zulassen. Für private Adressbereiche (RFC 1918, Tailscale CGN) wird die Beschränkung auf vertrauenswürdige IPs empfohlen.

Externe Zugriffe / empfohlen exponiert

Extern exponiertPortEmpfohlen
Web-Konsole80, 443, 7443über nginx/HAProxy empfohlen
Zustands-Check4950nur Überwachungssysteme (HTTPS)
MQTT (externe Geräte)1884 (TLS), 18884TLS empfohlen
Kafka externe Clients9094 (TLS)TLS erforderlich
Daten-Gateway5500API-Schlüssel + TLS

Beschränken Sie DB / Messaging PLAINTEXT-Ports / JMX auf nur privates Netzwerk.

Unterstützte Browser

Die Web-Konsole unterstützt aktuelle Standard-Browser.

BrowserMindestversionEmpfohlen
Google Chrome100+Empfohlen
Microsoft Edge100+
Firefox100+
Safari15+

Pre-Installation-Checkliste

Bitte überprüfen Sie vor der Installation Folgendes.

  • CPU 16+ vCPU, Arbeitsspeicher 64+ GB, Datenfestplatte 200+ GB
  • Datenfestplatte auf separatem /data1 eingehängt
  • OS RHEL/Rocky/Oracle 8+ oder Ubuntu 20.04+
  • Statische IP konfiguriert
  • chronyd aktiviert (Zeitsynchronisation)
  • Hostname + /etc/hosts registriert
  • Swap deaktiviert
  • nofile 1048576 usw. Limits angewendet
  • vm.max_map_count usw. sysctl angewendet
  • Firewall-Richtlinie (extern exponierte Ports klar definiert)
  • DNS funktioniert ordnungsgemäß (getent hosts <hostname>)
  • Internetzugriff oder Air-Gap-Netzwerk-Bundle vorbereitet

Nächste Schritte