web-dev-qa-db-ja.com

InnoDB:エラー:pthread_createが12を返しました

mySQLを特定のフォルダにインストールした。サーバーを実行してアカウントやデータベースなどを作成できましたが、サーバーを起動しようとするたびにエラーが発生します。

$ mysqld_safe --defaults-file=mysql.cnf &
[1] 2002
[compute-0-5 /amber2/scratch/myname/mysql]$ 130725 17:56:24 mysqld_safe Logging to '/amber2/scratch/myname/mysql/data/compute-0-5.local.err'.
130725 17:56:24 mysqld_safe Starting mysqld daemon with databases from /amber2/scratch/myname/mysql/data
130725 17:56:25 mysqld_safe mysqld from pid file /amber2/scratch/myname/mysql/data/compute-0-5.local.pid ended

[1]+  Done                    mysqld_safe --defaults-file=mysql.cnf

データフォルダー内のエラーファイル:

130725 17:17:53 mysqld_safe Starting mysqld daemon with databases from /amber2/scratch/myname/mysql/data
2013-07-25 17:17:54 0 [Warning] option 'read_buffer_size': unsigned value 2147483648 adjusted to 2147479552
2013-07-25 17:17:54 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-07-25 17:17:54 28189 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2013-07-25 17:17:54 28189 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)

2013-07-25 17:17:54 28189 [Note] Plugin 'FEDERATED' is disabled.
2013-07-25 17:17:54 28189 [Note] InnoDB: The InnoDB memory heap is disabled
2013-07-25 17:17:54 28189 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2013-07-25 17:17:54 28189 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-07-25 17:17:54 28189 [Note] InnoDB: Using Linux native AIO
2013-07-25 17:17:54 28189 [Note] InnoDB: Not using CPU crc32 instructions
2013-07-25 17:17:54 28189 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-07-25 17:17:54 28189 [Note] InnoDB: Completed initialization of buffer pool
2013-07-25 17:17:54 28189 [Note] InnoDB: Highest supported file format is Barracuda.
InnoDB: Error: pthread_create returned 12
130725 17:17:55 mysqld_safe mysqld from pid file /amber2/scratch/myname/mysql/data/compute-0-18.local.pid ended

しかし、なぜpthread_createエラー12が発生するのですか?これは十分なスペースがないことに関連しているようです。 mysqlフォルダー(/ amnber2 // scratch/myname/mysql)が存在するデバイスには、スペースがあります。

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              49G  5.0G   41G  11% /
        ...
10.255.255.46:/export/scratch
                       15T   11T  4.2T  72% /amber2/scratch

ホームディレクトリクォータにも数ギグあります

$ quota -v
Disk quotas for user myname (uid 41222):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
10.255.255.45:/export/ncms
                22986221  26214400 26214400               0       0       0
10.255.255.46:/export/scratch
                7321108       0       0               0       0       0

つまり、25Gのうち22Gを使用しています。

$ du -sh ~/.
22G /home/ncms/myname/.

私には空きメモリもあります:

$ free -mg
             total       used       free     shared    buffers     cached
Mem:            62         41         21          0          0         28
-/+ buffers/cache:         12         49
Swap:           64         13         51

私のmysql構成ファイルで:

myisam_sort_buffer_size=4G   
myisam_max_sort_file_size=200G
read_buffer_size=2G

では、なぜエラーが発生するのですかpthread_createサーバーの起動中にエラーが発生しましたか?

2
highBandWidth
$ /usr/local/mysql/bin/perror 12
OS error code  12:  Cannot allocate memory

もちろん、メモリはありますnowですが、MySQLは実行されていませんnow

それらの数ギガバイトの構成エントリーを削除し、それらがなくてもサーバーを始動できることを確認してください。疑わしいread_buffer_sizeはあなたを引き付けているものかもしれませんが、それらはすべて新しいサーバーには不必要に大きいです。表示されている警告max_open_filesおよびtable_cache設定の別の場所にも大きな値を設定して、パフォーマンスを高めるためにMySQLを微調整しようとしていることを示唆しています。

それはあなたが期待することをするつもりはありません。バッファーとキャッシュのサイズに関しては、多いほど良いとは限りません。特別な理由がない限り、カスタム設定をコメントアウトしてデフォルトから始めます。変更を行う場合は、変更が互いに直接関連していない限り、一度に1つ以上変更しないでください。

2