gpt4 book ai didi

mysql - 大量 mysql 使用 CPU 或内存

转载 作者:可可西里 更新时间:2023-11-01 07:04:52 26 4
gpt4 key购买 nike

我有一个 Amazon s3 实例,我们在服务器上的项目执行大量插入和更新以及一些复杂的选择

我们发现 MySQL 经常会占用大量 CPU。

我正在尝试确定更高内存或更高 cpu 是否更适合上述设置。

下面是cat/proc/meminfo的输出

MemTotal:      7347752 kB
MemFree: 94408 kB
Buffers: 71932 kB
Cached: 2202544 kB
SwapCached: 0 kB
Active: 6483248 kB
Inactive: 415888 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 168264 kB
Writeback: 0 kB
AnonPages: 4617848 kB
Mapped: 21212 kB
Slab: 129444 kB
SReclaimable: 86076 kB
SUnreclaim: 43368 kB
PageTables: 54104 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 3673876 kB
Committed_AS: 5384852 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 180 kB
VmallocChunk: 34359738187 kB

当前设置:

High-CPU Extra Large Instance

7 GB of memory 20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each) 1690 GB of instance storage 64-bit platform I/O Performance: High API name: c1.xlarge

可能的设置:

High-Memory Double Extra Large Instance

34.2 GB of memory 13 EC2 Compute Units (4 virtual cores with 3.25 EC2 Compute Units each) 850 GB of instance storage 64-bit platform I/O Performance: High API name: m2.2xlarge

最佳答案

我会在 RAID 中选择 32GB 内存和更多硬盘。 CPU 帮不上什么忙——你有足够的 cpu 能力。还需要正确配置mysql。

  • 为操作系统缓存和临时表留出 1-2 GB。
  • 增加 tmp_table_size
  • 删除交换
  • 优化 query_cache_size(不要让它太大 - 请参阅有关它的 mysql 文档)
  • 定期运行 FLUSH QUERY CACHE。如果您的查询缓存小于 512 MB - 每 5 分钟运行一次。这不会清理缓存,它会对其进行优化(碎片整理)。这是来自 mysql 文档:

Defragment the query cache to better utilize its memory. FLUSH QUERY CACHE does not remove any queries from the cache, unlike FLUSH TABLES or RESET QUERY CACHE.

但是我注意到另一个解决方案有一半的磁盘空间:850GB,这可能是减少了硬盘数量。这通常是个坏主意。数据库中最大的问题是硬盘。如果你使用 RAID5 - 确保你没有使用更少的硬盘。如果您根本不使用 raid - 我建议使用 raid 0。

关于mysql - 大量 mysql 使用 CPU 或内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com