突然接手一个transaction 大的mySQL DB server,搞不定了,来这里求真相。
同一个产品库,2台mySQL 5.1.53, server A
windows server 2008 r2 enterise 64 bit
64G RAM
32 core
default innodb engine
我想设置innodb_buffer_pool_size=50G
可是只能最多设置2G,超过2G,services 不能启动。
报错信息:
InnoDB: Error: cannot allocate 2621456384 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 19458892 bytes. Operating system errno: 8
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
InnoDB: Fatal error: cannot allocate the memory for the buffer pool
120529 9:13:56 [ERROR] Plugin 'InnoDB' init function returned error.
以下是我的my.ini配置信息:
[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
federated
skip-external-locking
skip-name-resolve
server-id=10
binlog-do-db=dbslave
log-bin=D:\mySQLSlave\log-bin.log
# The TCP/IP Port the MySQL Server will listen on
port=3306
basedir="H:/MYSQL/"
datadir="D:/SQL Data/Data/"
default-character-set=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=800
query_cache_size=186M
table_cache=1520
tmp_table_size=67M
thread_cache_size=38
myisam_max_sort_file_size=2000M
myisam_sort_buffer_size=67M
key_buffer_size=290M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
#*** INNODB Specific options ***
innodb_data_home_dir="D:/MySQL Datafiles/"
#skip-innodb
innodb_additional_mem_pool_size=12M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=6M
innodb_buffer_pool_size=2G
innodb_log_file_size=113M
innodb_thread_concurrency=66
log-slow-queries
另一台slave DB server 32 bit OS, 只能分配1G 给innodb_buffer_pool_size
这是神马情况呀,请教大虾。
谢谢。