システム要件
PlantPulse Platformを安定して運用するためのハードウェア / OS / ネットワーク要件をご案内します。検証済みの標準環境に基づいて作成されています。
要件一覧
| 区分 | 最小 (開発 / テスト) | 標準 (運用) | 大規模 |
|---|---|---|---|
| CPU | 16 vCPU | 32 vCPU | 48+ vCPU |
| メモリ | 128 GB | 128 GB | 256 GB+ |
| OS ディスク | 200 GB | 256 GB | 512 GB |
| データ ディスク | 1 TB (SSD) | 1 TB (NVMe SSD) | 4 TB+ (NVMe SSD) |
| ネットワーク | 1 Gbps | 1 Gbps | 10 Gbps |
| OS | RHEL · Rocky · Oracle Linux 8.x 以上 | 9.x または 10.x | 同一 |
| JDK | OpenJDK 21 LTS | OpenJDK 21 LTS | OpenJDK 21 LTS |
データレイクマスターコンテナ(plantpulse-datalake)には 96 GB以上 のメモリ上限が必要です。96 GBは余裕分ではなく 最小値 であり、 64 GBの構成はサポート外仕様です。
- なぜ 96 GB なのか — 停止できない常駐サービス(Aster TSDB 힙 16 GB + direct 6 GB, CEP, HiveMQ, Valkey, PostgreSQL, TSE, Kafkaなど)の宣言上限だけを合計しても約67 GBになります。検証環境において2026-10-29にこのコンテナが96 GB上限に達し、Kafkaがメモリ割り当て失敗(ENOMEM)でダウンしました。
- ホストはそれ以上である必要があります — インストールスクリプトはデータレイク上限をホストRAMの90%で制限します。そのため、 ホストRAMが107 GB未満であれば96 GBを割り当てることができず、そのホストは仕様不足 となります。64 GBの構成では上限が57.6 GBに制限されるため、データレイクが動作しません。
- アプリコンテナの分を加算します — 同じホストで標準的に動作するアプリコンテナの上限合計は32 GBです(server-web 14 · batch 4 · warehouse 4 · OPC UA 3 · AASX 3 · HA 2 · フロントライン 1 · proxy 1)。マスター 96 GB + アプリ標準上限合計 32 GB = 128 GB となり、 最小 128 GB と一致します。mirror-makerを有効にする場合(+2 GB)やアプリ上限を上げる場合は、その分さらにメモリが必要です。上限は天井であり、使用量ではありません。運用環境では256 GBを推奨します。
インストール後、実際の上限が十分であるかはデータレイクCLIのpd doctorが判定します([9] memory budget節、--memory-limitにdocker inspectのHostConfig.Memory値を渡します)。
検証環境: 運用検証環境(reference dev server)は 48 vCPU / 188 GB RAM / 4.8 TB NVMe SSD / RHEL 9 / Temurin OpenJDK 21.0.11 LTS で運用されています。
ハードウェア
CPU
- 推奨: 32 vCPU 以上 (Intel Xeon, AMD EPYC, ARM Graviton など)
- IIoTエンジンは36スレッドパイプラインを使用 (
engine.pipeline.threads) - Spark分散分析は
PP_CLUSTER_CORES分だけ追加で使用 - コア数が多いほど同時メッセージ処理量 ↑
メモリ
- 基本 128 GB 以上 · 運用推奨 256 GB
- データレイクマスターコンテナ 96 GB 以上 — ホストRAMが107 GB未満であれば仕様不足、64 GBはサポート外仕様(上記警告を参照)
- メモリはページキャッシュとしてAster TSDB / Kafkaの性能に直接影響
- Aster TSDB 힙: 16 GB 固定 + direct メモリ 6 GB
- データレイクコンテナメモリ限界:
DOCKER_DATALAKE_MEMORY— 基本96G、ホストRAMの90%を超えないように制限されます
ディスク
OS / データディスクの分離を推奨: OSディスク (
/) とデータディスク (/data1) を分離することで、バックアップ / 拡張 / 障害隔離が容易になります。
/ # OS 디스크 (256 GB)
└── opt/kopens/ # PlantPulse 설치 트리
/data1/ # 데이터 디스크 (1 TB+ NVMe SSD)
├── pp-data/ # Aster TSDB · PostgreSQL · RustFS · Valkey
├── pp-temp/ # Spark / 처리 임시
└── pp-backup/ # 백업 산출물
| マウント | 容量 | ディスク種類 | 用途 |
|---|---|---|---|
/ | 256 GB | SSD | OS, インストールツリー |
/data1 | 1 TB+ | NVMe SSD 必須 | メインデータ |
/data2 ~ /dataN | 1 TB+ | NVMe SSD | (オプション) Aster TSDB データ / commitlog 分離 |
Aster TSDB ディスク最適化 (高度)
大規模環境においてcommitlogとdataを別ディスクに配置すると、書き込みスループットが大幅に向上します。
/data1/pp-data/cassandra/data/ # SSTable (대용량 NVMe)
/data2/pp-data/cassandra/commitlog/ # commitlog (별도 NVMe, sync I/O)
オペレーティングシステム
サポートOS
RHEL · Rocky Linux · Oracle Linux 8.x · 9.x · 10.x — これら3つのディストリビューションを同一のものとして扱います(RPM系 · 同一パッケージ名 · 同一ファイアウォールツール)。
| OS | バージョン |
|---|---|
| RHEL · Rocky Linux · Oracle Linux | 8.x · 9.x · 10.x |
| AlmaLinux | 8.x · 9.x |
| Ubuntu | 20.04 以上 |
| Amazon Linux | 2 · 2023 |
以降の案内はすべて RHEL · Rocky Linux · Oracle Linux 8.x · 9.x · 10.x を基準としています。Ubuntu / Amazon Linux を使用される場合は、パッケージコマンド(
apt/dnf)のみ環境に合わせて変更してください。
Java (JDK)
PlantPulse は Java 21 LTS ベースです。setup.sh / tools/java/ が自動的にインストールします。
$ 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)
手動インストールが必要な場合:
# RHEL/Rocky/Oracle
dnf install -y java-21-openjdk java-21-openjdk-devel
# Ubuntu
apt-get install -y openjdk-21-jdk
JAVA_HOME 環境変数が自動登録され、すべてのモジュールにJAVA_TOOL_OPTIONS="-Duser.language=${PP_LANG} -Duser.timezone=${PP_TZ}"で統合適用されます。
ネットワーク / ホスト名
ホスト名
hostnamectl set-hostname plantpulse-prod-01
# /etc/hosts
vi /etc/hosts
# 첫 행 직후에 추가:
# 192.168.0.41 plantpulse-prod-01 plantpulse-prod-01.local
固定IP
サーバーIPが変更されるとクラスター / クライアントの接続が切断されるため、必ず固定IPを使用してください。
# 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
時刻同期 (必須)
分散コンポーネント (Aster TSDB, Kafka など) はノード間の時刻精度に非常に敏感です。
dnf install -y chrony
systemctl enable --now chronyd
chronyc tracking # 동기화 상태 확인
chronyc -a makestep # 즉시 동기화
OSチューニング (必須)
以下の値はinstall.sh(ワンライン / Dockerインストール) が 自動的に適用する値 です。手動環境でのみ、同様に直接設定してください。
ファイルディスクリプタ / プロセス限界
# /etc/security/limits.conf
* - memlock unlimited
* - nofile 1048576
* - nproc 32768
* - as unlimited
カーネルパラメータ
# /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無効化
データベース / Javaプロセスはswapを避ける必要があります。
swapoff --all
# /etc/fstab 의 swap 라인 주석 처리
sed -i '/swap/s/^/#/' /etc/fstab
SELinux
setup.sh が自動的にpermissiveに切り替えます。手動変更:
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
Nativeライブラリ
Aster TSDBの性能向上のためのライブラリです。
dnf install -y jna jemalloc jemalloc-devel zstd libpq
ディスクI/Oチューニング
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 (運用非推奨)
echo mq-deadline > /sys/block/sdb/queue/scheduler
blockdev --setra 128 /dev/sdb
ファイアウォール
install.sh はfirewalldを 有効化 (systemctl enable --now firewalld) し、Platformに必要なポートを自動的に開放します。ファイアウォールを外部(社内ファイアウォール / クラウドセキュリティグループ)で管理している場合のみ、SKIP_FW=1でこのステップをスキップしてください。
手動環境で直接開放する例:
systemctl enable --now firewalld
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/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
全ポートリストは ポート構成情報 を参照。
上位ファイアウォール / クラウドセキュリティグループ: 社内 / クラウドのファイアウォールは別途設定が必要ですので、合わせて許可してください。私設網帯域 (RFC 1918, Tailscale CGN) は信頼可能なIPでソース制限することを推奨します。
外部接続 / 露出推奨
| 外部露出 | ポート | 推奨 |
|---|---|---|
| ウェブコンソール | 80, 443 | nginx/HAProxy経由を推奨 |
| ヘルスチェック | 4950 | モニタリングシステム only (HTTPS) |
| MQTT (外部デバイス) | 1884 (TLS), 18884 | TLS 推奨 |
| Kafka 外部クライアント | 9094 (TLS) | TLS 必須 |
| データゲートウェイ | 5500 | API Key + TLS |
DB / メッセージング PLAINTEXT ポート / JMX は 私設網 only に制限してください。
サポートブラウザ
ウェブコンソールは最新の標準ブラウザをサポートしています。
| ブラウザ | 最小バージョン | 推奨 |
|---|---|---|
| Google Chrome | 100+ | 推奨 |
| Microsoft Edge | 100+ | ✓ |
| Firefox | 100+ | ✓ |
| Safari | 15+ | ✓ |
事前点検チェックリスト
インストール前に以下を確認してください。
- CPU 16+ vCPU, メモリ 128+ GB(データレイクマスターに96 GBを割り当て可能であること — 64 GBはサポート外仕様), データディスク 200+ GB
- データディスクが別途
/data1にマウントされていること - OS RHEL/Rocky/Oracle 8+ または Ubuntu 20.04+
- 固定IP設定済み
-
chronyd有効化 (時刻同期) - ホスト名 +
/etc/hosts登録済み - swap 無効化済み
-
nofile 1048576等 limits 適用済み -
vm.max_map_count等 sysctl 適用済み - ファイアウォールポリシー (外部露出ポートの明確化)
- DNS 正常動作 (
getent hosts <hostname>) - インターネットアクセス または 閉域網バンドル準備済み
次のステップ
- 迅速にインストール → ワンラインインストール (推奨)
- コンテナベースのインストール → Dockerインストール
- ポート競合の確認 → ポート構成情報