跳转至
首页 解决方案 下载 文档
演示环境

OpsAny平台性能调优

OpsAny社区版在发布时,为了保证用户可以在4C、8G的主机上完成验证测试,出厂设置并不适合大规模并发访问,或者对性能要求比较高的场景,不过不用担心,产品是完全具备这个能力的,只需要进行一些性能优化即可。

基础服务性能优化

OpsAny使用了MySQL、Redis、MongoDB作为底层存储,在生产使用时经常有需要进行相关的性能调整,主要是以内存为主。

MySQL性能优化

MySQL的配置文件保存在安装目录INSTALL_PATH/conf/mysqld.cnf,启动时,挂载到容器中,可以调整该文件。

# 1.修改相关性能参数
vim ${INSTALL_PATH}/conf/mysqld.cnf
max_connections = 4096

# Memory Truning
innodb_buffer_pool_size=1024M
innodb_log_buffer_size=64M
key_buffer_size=520M
query_cache_size=520M

# 2.重启MySQL容器
docker restart opsany-base-mysql

Redis性能优化

Redis的配置文件保存在安装目录INSTALL_PATH/conf/redis/redis.conf,启动时,挂载到容器中,可以调整该文件。

# 1.修改相关性能参数
vim ${INSTALL_PATH}/conf/redis/redis.conf
...
# 2.重启Redis容器
docker restart opsany-base-redis

PaaS平台性能优化

PaaS平台的性能优化主要修改PaaS各个服务的进程数,即可支撑更高的并发数。

每个paas服务都有一个配置文件的目录,为supervisor的配置文件格式,进行修改即可。通常建议必须修改login、esb的进程数。

Proxy性能优化

  • Proxy服务进程优化。
vim +2 ${INSTALL_PATH}/conf/proxy/proxy.ini
[program:opsany-proxy]
# 修改-w参数,设置更多的进程,进程越多,支持管理的主机数据越多。例如-w 16
command=gunicorn wsgi --bind 0.0.0.0:8010 -k gevent -w 2 -n proxy --access-logfile - --error-logfile -

[program: opsany-proxy-celery]
# 修改--autoscale=8,1,增加Celery进程,进程越多,支持的并发任务数越多,例如--autoscale=64,16
command = /usr/local/bin/python3 /opt/opsany-proxy/manage.py celery worker -n proxy -l INFO --autoscale=8,1
  • Agent、Agent/SSH、SSH/Agent纳管方式性能优化
# 如果你使用的Agent进行纳管,需要调整Master进程数。
vim +267 ${INSTALL_PATH}/proxy-volume/etc/salt/master
# 修改worker进程数,最小为3,如果纳管的主机比较多,必须修改。
worker_threads: 3
  • 修改完毕后重启proxy容器
docker restart opsany-paas-proxy

Websocket性能优化

如果遇到堡垒机卡断,或者并发比较高时,出现问题。那就必须进行Websocket性能调整。

vim ${INSTALL_PATH}/conf/opsany-paas/websocket/websocket.ini
[program:websocket]
# 调整--workers 4的数量。例如--workers 32,需要注意内存使用。
command=uvicorn --proxy-headers --host 0.0.0.0 --port 8004 asgi:application --workers 4

修改完毕后重启websocket容器

docker restart opsany-paas-websocket

paas服务性能优化

# 1.修改paas服务的进程数,修改-w后面的数字,为启动的进程数。
 vim ${INSTALL_PATH}/conf/opsany-paas/paas/paas.ini
 [program:opsany-paas]
command=gunicorn wsgi --bind 0.0.0.0:8001 -k gevent -w 4 -n paas --access-logfile - --error-logfile -
directory=/opt/opsany/paas/paas
environment=DJANGO_SETTINGS_MODULE=settings,BK_ENV="production",PAAS_LOGGING_DIR="/opt/opsany/logs"
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/opt/opsany/logs/paas_paas.log

# 2.重启paas服务
docker restart opsany-paas-paas

esb、login、appengine、websocket、proxy均和PaaS服务类似,再次不一一列举。

paas服务的

SaaS平台性能优化

SaaS平台访问性能影响的主要因素就是进程数,请调大进程数来支撑并发访问。

每个应用都有一个配置文件的目录,该目录下有一个APPID-uwsgi.ini文件。APPID为应用的ID。下面以统一权限(rbac)为例。

# 1.修改统一权限rbac服务的进程数。
vim ${INSTALL_PATH}/conf/opsany-saas/rbac/rbac-uwsgi.ini
# 通常修改这两个参数即可。
processes = 4
threads = 2

# 2.修改后台Celery任务数量,--autoscale=8,1。8为最大数量。1为最小数量。
vim ${INSTALL_PATH}/conf/opsany-saas/rbac/rbac-supervisor.ini
[program: rbac_celery]
command = /usr/local/bin/python3 /opt/opsany/rbac/manage.py celery worker -n rbac -l INFO --autoscale=8,1

# 3.重启统一权限rbac容器
docker restart opsany-saas-ce-rbac
Document