Zabbix用サーバにおける、MySQL Community Server (5.6)の設定ファイル「my.cnf」の設定を確認しました。結果を記載しておきます。
my.cnf 設定内容
/etc/my.cnf の設定内容は以下にしています。
[mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES default-character-set=utf8 skip-character-set-client-handshake innodb_file_per_table
以降に、各設定の内容について記載します。
sql_mode
使われている設定値は以下です。
- NO_ENGINE_SUBSTITUTION
- デフォルトのストレージエンジンの自動置換(substitution)を防ぐ設定。
- STRICT_TRANS_TABLES
- トランザクションのストレージエンジンに対して、Strict Mode を有効にする設定。Strict Mode は、MySQLが無効または不明な入力値をどのように処理するかを制御しますが、それを有効にするという設定です。
これらの設定は私の環境では入れておいて良さそうです。
default-character-set=utf8
MySQLのデフォルト文字コードを「UTF8」で設定する、という内容です。
この値は「character-set-server=utf8」と同意義のようです。MySQL 5.5 では、本来は「character-set-server=utf8」を使うようですが、「default-character-set=utf8」も有効になっているようです。
skip-character-set-client-handshake
クライアント側の要求に関わらずに、必ず「UTF8」で応答するという内容です。
innodb_file_per_table
この設定は、「multiple tablespace」と呼ばれる、各テーブルがテーブルスペースを持つという特徴があります。複数のテーブルを持っている場合(ほとんどのシステムがそうなると思います)に効果的らしく、ファイルI/O分散や、DBAの管理性向上が見込まれます。
※ MySQL リファレンスマニュアル 「Per-Table テーブルスペースを利用する」
以下のSQLコマンドで現状の設定値確認が出来ます。
mysql> show variables like 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | ON | +-----------------------+-------+ 1 row in set (0.04 sec) mysql>
「ON」になっていれば、有効になっています。
「テーブル名.idb」というファイルが作成され管理される事になります。
ちなみに、Zabbix(2.0.5)のデータベースの場合、以下の.idbファイルがあります。
# ls -1 | grep ibd acknowledges.ibd actions.ibd alerts.ibd applications.ibd auditlog_details.ibd auditlog.ibd autoreg_host.ibd conditions.ibd config.ibd dchecks.ibd dhosts.ibd drules.ibd dservices.ibd escalations.ibd events.ibd expressions.ibd functions.ibd globalmacro.ibd globalvars.ibd graph_discovery.ibd graphs.ibd graphs_items.ibd graph_theme.ibd groups.ibd help_items.ibd history.ibd history_log.ibd history_str.ibd history_str_sync.ibd history_sync.ibd history_text.ibd history_uint.ibd history_uint_sync.ibd host_inventory.ibd hostmacro.ibd hosts_groups.ibd hosts.ibd hosts_templates.ibd housekeeper.ibd httpstep.ibd httpstepitem.ibd httptest.ibd httptestitem.ibd icon_map.ibd icon_mapping.ibd ids.ibd images.ibd interface.ibd item_discovery.ibd items_applications.ibd items.ibd maintenances_groups.ibd maintenances_hosts.ibd maintenances.ibd maintenances_windows.ibd mappings.ibd media.ibd media_type.ibd node_cksum.ibd nodes.ibd opcommand_grp.ibd opcommand_hst.ibd opcommand.ibd opconditions.ibd operations.ibd opgroup.ibd opmessage_grp.ibd opmessage.ibd opmessage_usr.ibd optemplate.ibd profiles.ibd proxy_autoreg_host.ibd proxy_dhistory.ibd proxy_history.ibd regexps.ibd rights.ibd screens.ibd screens_items.ibd scripts.ibd service_alarms.ibd services.ibd services_links.ibd services_times.ibd sessions.ibd slideshows.ibd slides.ibd sysmap_element_url.ibd sysmaps_elements.ibd sysmaps.ibd sysmaps_links.ibd sysmaps_link_triggers.ibd sysmap_url.ibd timeperiods.ibd trends.ibd trends_uint.ibd trigger_depends.ibd trigger_discovery.ibd triggers.ibd user_history.ibd users_groups.ibd users.ibd usrgrp.ibd valuemaps.ibd #
かなりの数のテーブルがあります。(103個)
課題
メモリ関連などの設定はデフォルトのままになっています。状況を見ながらチューニングしていきたいと考えています。