玩一玩 proxysql
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢![*]cnblogs博客
[*]zhihu
[*]Github
[*]公众号:一本正经的瞎扯
一个后端服务的性能不好,我怀疑是数据库拖慢了性能,为了便于不侵入代码而对性能进行分析,我尝试了 proxysql 组件:
在 mysql 客户端和 mysql 服务器之间搭建 proxysql 代理服务,通过 proxy 来记录日志、分析性能、做缓存。
如下是使用过程:
部署
配置文件
如下是配置文件的格式: proxysql.cnf
datadir="/var/lib/proxysql"
errorlog="/log/proxysql.log"
admin_variables=
{
admin_credentials="admin:admin"# 管理员账号
mysql_ifaces="0.0.0.0:6032"# mysql 协议管理端口
}
mysql_variables=
{
threads=4
max_connections=2048
interfaces="0.0.0.0:6033"# 代理端口
default_schema="information_schema"
monitor_username="monitor"
monitor_password="monitor"
#
mysql-eventslog_filename="/log/events.log"
mysql-eventslog_format=2 # JSON(可选)
mysql-eventslog_default_log=1 # 全量记录(可选)
}
# 先留空:你后面可用管理端口 6032 动态写入后端/用户/规则
mysql_servers =
(
)
mysql_users =
(
)启动服务
docker run -d --rm --name proxysql \
--network host \
--cpus=1 -m=1024m \
-p 6032:6032 -p 6033:6033 \
-v "./proxysql.cnf:/etc/proxysql.cnf:ro" \
-v "./data:/var/lib/proxysql" \
-v "./log/":/log/ \
proxysql/proxysql:latest配置规则
使用写入 sql 的方式来配置: config.sh
#!/usr/bin/env bashset -euo pipefail# ===== ProxySQL 管理端连接信息 =====PROXYSQL_HOST="${PROXYSQL_HOST:-127.0.0.1}"PROXYSQL_PORT="${PROXYSQL_PORT:-6032}"PROXYSQL_ADMIN_USER="${PROXYSQL_ADMIN_USER:-admin}"PROXYSQL_ADMIN_PASS="${PROXYSQL_ADMIN_PASS:-admin}"# ===== 你要创建/更新的业务用户 =====APP_USER="${APP_USER:-app}"APP_PASS="${APP_PASS:-app_pw}"DEFAULT_HOSTGROUP="${DEFAULT_HOSTGROUP:-10}"mysql -h "${PROXYSQL_HOST}" -P "${PROXYSQL_PORT}" \-u "${PROXYSQL_ADMIN_USER}" -p"${PROXYSQL_ADMIN_PASS}" \--protocol=tcp --batch --raw --silent 懂技术并乐意极积无私分享的人越来越少。珍惜 谢谢楼主提供! 感谢分享,学习下。 谢谢分享,试用一下 谢谢分享,辛苦了 谢谢楼主提供! 前排留名,哈哈哈 分享、互助 让互联网精神温暖你我 前排留名,哈哈哈
页:
[1]