1

我正在尝试在具有 613MB 内存的 Amazon EC2 微型实例上配置 mysql。这个实例将只用于运行 mysql,所以我想使用尽可能多的内存。我们在不同的主机上运行了同一数据库的另一个实例,因此我可以轻松比较结果。

在原始数据库上执行一个普通的查询不到 3 秒。在我对 EC2 进行更改之前,需要 46 秒,但现在,更改设置后,相同的查询只需要 4 秒。但是,再次执行相同的查询,似乎需要很长时间。

这是我在 MySql my.cnf 中使用的设置:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

innodb_buffer_pool_size = 128M
query_cache_size = 128M
query_cache_limit = 8M
key_buffer_size = 128M

table_open_cache = 2048
table_definition_cache = 2048
read_buffer_size = 64M
join_buffer_size = 64M
sort_buffer_size = 64M
myisam_sort_buffer_size = 64M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

我不认为应该包含 myisam 参数,因为它应该都使用 innodb,但我只是给了它一些额外的内存以防万一。

如果它在第一次运行时较慢,然后运行得更快,那将是合乎逻辑的,但这似乎不合逻辑。

任何想法都会非常受欢迎。

4

2 回答 2

1

EC2 micro 的性能通常很糟糕。您可以以相同的价格获得 Linode/Rackspace。

于 2012-04-18T14:10:03.197 回答
0

Amazon Micro 实例“可能会在有额外周期可用时在短时间内增加 CPU 容量。”

这意味着您被分配了 X 个计算单元,但是当其他 Micro 实例不使用它们的分配时,它可以跳转到 X + N,并且您的实例会自动清除它。

这可能就是您看到性能波动的原因。

于 2013-07-07T13:06:42.707 回答