跳至主要內容
BigKey问题

BigKey 问题是指在 Redis 中某些键包含的数据量过大,导致这些键的操作(如读取、写入、删除等)消耗过多的内存和CPU资源,进而影响整个Redis实例的性能。解决 BigKey 问题的关键在于识别并优化这些大键,以提高系统的稳定性和响应速度。以下是几种常见的解决方法:

1. 识别 BigKey

使用 redis-cli 工具

  • MEMORY USAGE 命令:可以用来查看某个键占用的内存量。
    redis-cli --raw MEMORY USAGE <key>
    
  • SCAN 命令:结合 MEMORY USAGE 可以批量扫描并检查多个键的大小。
    redis-cli --bigkeys
    

郑天祺大约 4 分钟数据库Redis性能优化数据库
mysql突然变慢排查

一、查看当前Mysql所有的进程

show full processlist;

二、查看Mysql的最大缓存


郑天祺大约 5 分钟数据库MySQL性能优化数据库
伪共享

1、CPU缓存介绍

	以近代CPU的视角来说,它们的作用都是作为CPU与主内存之间的高速数据缓冲区,L1最靠近CPU核心;L2其次;L3再次。

	图具有3级缓存的处理器
image-20201214133601256
image-20201214133601256
image-20201214133612299
image-20201214133612299

郑天祺大约 5 分钟操作系统伪共享性能优化
Hive调优

一、使用EXPLAIN

	查看逻辑,更多用 EXPLAIN EXTENDED

二、限制调整LIMIT

三、JOIN优化

	表足够小用map-side JOIN

四、本地模式

对于小数据集,单机或单线程执行时间比较短
hive> set oldjobtracker=${hiveconf.mapred.job.tracker};
hive> set mapred.job.tracker=local;
hive> set mapred.tmp.dir=/home/edward/tmp
hive> SELECT * from people WHERE firstname=bob;
hive> set mapred.job.tracker=${oldjobtracker};

郑天祺小于 1 分钟大数据Hive性能优化大数据