← Back to Case Studies
Optimization Infrastructure

限定リソース環境でのメールサーバー生存戦略

The Challenge

メモリ 1GB という極めて限定的な仮想サーバー環境において、MariaDB のデフォルト設定によるメモリ消費増大が原因で OOM (Out Of Memory) Kill が発生。結果として TinyCP およびメール配信機能が停止するという致命的な障害が発生しました。

Analysis: リソース消費の正体

調査の結果、MariaDB が起動時に全メモリの約 40% (約 370MB) を予約していたことが判明しました。しかし、実際の DB データサイズは約 3.5MB に過ぎず、ほとんどのリソースが未使用のまま確保されていました。

Implementation: 極小化設定の適用

実利用量に基づき、バッファプールおよびキーキャッシュを極限まで削減する最適化設定を導入しました。

/etc/mysql/mariadb.conf.d/99-memory-optimize.cnf Optimized Config
[mysqld]
# InnoDB Buffer Pool: 128MB -> 32MB (Data size is only 3.5MB)
innodb_buffer_pool_size = 32M

# Key Buffer: 128MB -> 4M (MyISAM operations are near zero)
key_buffer_size = 4M

# Log File Size: 96MB -> 16M
innodb_log_file_size = 16M
innodb_log_buffer_size = 4M

# Reduce connections to save stack memory
max_connections = 20

# Disable Performance Schema to save ~数十MB
performance_schema = OFF

Result & Outcome

MariaDB Memory
~200MB ~60MB
Swap Usage
109MB 19MB
System Status
Stable

得られた知見:デフォルト設定を盲信せず、実際のデータ量とトラフィックに基づいたパラメータチューニングを行うことで、低スペック環境でもエンタープライズ級の安定性を確保できることを実証。