1Panel icon indicating copy to clipboard operation
1Panel copied to clipboard

希望能优化 `/v1/apps/installed/check` 和 `/v1/apps/installed/search` 这两个接口的响应速度

Open jamebal opened this issue 1 year ago • 8 comments

联系方式

No response

1Panel 版本

v1.10.7-lts

问题描述

在多个虚拟机里面安装1panel测试发现:

  1. 系统里docker容器越多(多于30个),/v1/apps/installed/check, /v1/apps/installed/search这两个接口就慢, 不总是很慢, 有时几百毫秒,有时几秒, 慢的程度基本和docker容器数量成正比
  2. 系统里docker容器少(少于10个), /v1/apps/installed/check, /v1/apps/installed/search这两个接口就很快, 总是很快, 200毫秒以内
  3. 以上测试来自同一物理机里的多个虚拟机测试, 虚拟机配置相同, 所以能排除网络和硬件配置性能的问题

重现步骤

不是用1panel安装多个docker容器

期待的正确结果

希望能优化这两个接口的响应速度

相关日志输出

No response

附加信息

No response

jamebal avatar May 14 '24 03:05 jamebal

我猜测是网络并发响应原因,因为[Search、Check]是向服务器请求[AppList、UpdateList],我添加了本地第三方仓库,一次[Search]要[10s+]。

你提到这个,其实我一直想提一个[FEATURE],我看大家都没提过: [FEATURE]应用商店页面,默认展示[已安装]标签,标签顺序改为[已安装]、[可升级]、[全部(市场)] 这样修改之后,不必每次打开[应用商店]时必须先等待[应用商店服务器有响应之后才能操作],如下图:

image

MiderWong avatar May 14 '24 05:05 MiderWong

我没有添加第三方库, 而且我抓包了, Search、Check并没有向外部请求

jamebal avatar May 14 '24 06:05 jamebal

逻辑好像是下面这样: 1、先同步到本地,后续做Sync和Update的时候向服务器做版本号请求及对比 2、同步本地之后是查数据库

我的这个很慢原因是: 1、我用了第三方库,大概几百个App 2、MySQL用的是Docker部署的

MiderWong avatar May 14 '24 07:05 MiderWong

/v1/apps/installed/search该接口24小时检测结果, 时快时慢,没发现规律 截屏2024-05-16 09 26 05

jamebal avatar May 16 '24 01:05 jamebal

同一个物理下两个配置相同的虚拟机对/v1/apps/installed/search的监控, 其中192.168.0.192有54个容器, 192.168.0.104有3个容器

截屏2024-05-17 10 32 26 截屏2024-05-17 10 33 00

jamebal avatar May 17 '24 02:05 jamebal

同一个物理下三个配置相同的虚拟机对/v1/apps/installed/search的监控, 容器数量不同对其响应时间的影响

截屏2024-05-20 09 15 00 截屏2024-05-20 09 15 17 截屏2024-05-20 09 15 37

jamebal avatar May 20 '24 01:05 jamebal

🙏感谢反馈,应该是调用 docker SDK 获取容器状态这个方法导致的,后续版本考虑优化成两个接口

zhengkunwang223 avatar May 20 '24 01:05 zhengkunwang223

好的谢谢

jamebal avatar May 20 '24 01:05 jamebal

v1.10.10-lts 版本已发布。

wanghe-fit2cloud avatar Jun 08 '24 13:06 wanghe-fit2cloud