proxy空间膨胀问题
麻烦问下 max_disk_size、max_table_size 这两个 参数修改后,影响怎样
如果整体/单个请求 临时表磁盘空间超过这两个参数限制 会中止业务请求 客户端会收到报错
额。。。。假如我设置成100G。前面有些语句占用磁盘到90G。后面如果有个sql,确实没法下推的,需要20G的空间,那这样还是只有报错,达到这个100G,然后自动清理?
是的 没法事先知道一个语句需要多大的临时表空间
1. 如果max_disk_size=100G
当临时表空间达到100个的时候
就会干掉占用临时表空间最大的40个请求
2. 如果max_table_size=4G
当某个请求的临时表空间占用超过4G时 就会干掉这个请求
不能SQL语句执行完,自动释放当前临时表数据吗?
SQL语句执行完 会自动释放当前临时表数据的
proxy不断膨胀怎么办
方案1,通过SQL优化,实现SQL的下推
优点,可解决根本问题
缺点,需要和业务确认,从程序侧修改业务逻辑
方案2,修改max_disk_size、max_table_size 限制网关嵌入式数据库最多占用的存储空间,以及单个表最大的存储空间。单位为G,类型为整数,模版默认值为1024,代码默认值为0,即不限制。此修改需要进行测试。
1). 如果max_disk_size=100G
当临时表空间达到100个的时候
就会干掉占用临时表空间最大的40个请求
2) 如果max_table_size=4G
当某个请求的临时表空间占用超过4G时 就会干掉这个请求
两条只要满足一项就会删的
优点,操作简单
缺点,可能中断业务sql
方案3,把proxy从系统盘迁到数据盘上
优点,操作简单
缺点,软连接没有相关的充分测试,可修改zk等信息实现
方案4,扩容磁盘可以么
优点,操作简单,低风险
缺点,可能不存在可扩容空间
方案5,迁移proxy机器
优点,能解决磁盘不够的根本问题
缺点,操作相对复杂,需要新机器,需要交付单、交付工程师现场操作