yokuさん 大垣さん
ご返信ありがとうございます。
広江です。

メモリは32GB積んでいて、バッチ動かす前は使用メモリが18GBぐらいなのが
バッチ実行後2時間ほどで32GBフル+スワップ100MBほど使っているようです。

Linuxの場合、スワップ発生は当然と思っていましたが認識が間違っているのでしょうか。
現在innotopをインストールして情報を集めようと、見方を調べているところです。

yokuさん
なるほどです、
innodb_buffer_pool_size は19G->16Gに下げ
innodb_log_buffer_size を8M->64Mにあげてやってみようと思います。


大垣さん
「mysqlをデバッグビルド」というのはもしやC言語の知識が必要でしょうか?
勉強不足でおはずかしい限りですが。
プロセスをps -efでみると
mysqld <defunct>になっていてkillしてもスルーされゾンビでした。







2013年7月31日 15:45 Yasuo Ohgaki <yohgaki@ohgaki.net>:
大垣です。

他の方が指摘されているようにメモリが足りないのかも知れませんが、
本当にハングしているならmysqlをデバッグビルドしてgdbでアタッチ
して調べると原因が分かると思います。

--
Yasuo Ohgaki
yohgaki@ohgaki.net


2013/7/30 ayako hiroe <roeaya03@gmail.com>
お世話になります。
広江彩子と申します。

サーバー移行のため数億件のレストアテストをしております。
300万件ずつのtab区切りプレインテキストのダンプを
バッチで何度もload infeを繰りかえしているうちmysqldが突然ハングします。

ハングの具体的な現象は
・load中のCPU使用率からすると突然それが下がる
・mysql関連のコマンドがすべてハング(killするしかない)
・mysqladmin shutdownもハング
・mysqldのスクリプトを実行してもハング

上記のような状態になると結局killallなどするしかありません。
エラーログはハングの時点では何も吐いていません。
killallでmysqldのプロセスを停止するので、システムをリブートしてmysqld startするときに
リカバリ・ロールバックプロセスががんがん走るのをエラーログが吐いているようになります。

バッチをまわし始めるとだんだん使用メモリが増え、しばらくするとスワップが発生します。
それが原因かもわかりません。
innodb使用です。

何かお気づきの方がおられましたら
ご教授いただけますと幸いです。



OS:
Linux CentOS release6.4

MySQL:
MySQL 5.5.32 Remi

ロケール:
utf8

my.cnf

[mysqld]
innodb_file_per_table
back_log = 50
max_connections = 500
max_connect_errors = 10
table_open_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 512M
read_rnd_buffer_size = 1M
ted per thread if sort is needed.
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 180
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M

ft_min_word_len = 4

default-storage-engine = InnoDB
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M

binlog_format=mixed
slow_query_log
log-error=/var/log/myerror.log
log-warnings=1
long_query_time = 120
key_buffer_size = 32M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

myisam_recover
innodb_io_capacity=2000
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 19G

innodb_data_file_path = ibdata1:10M:autoextend
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16

innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M

innodb_log_file_size = 1G
innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120


[mysqldump]
quick

max_allowed_packet = 16M
default-character-set=utf8

[mysql]
no-auto-rehash

# Only allow UPDATEs and DELETEs that use keys.
#safe-updates
default-character-set=utf8

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192