开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Confluence

Confluence 6 识别慢性能的宏

Page Profiling 给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别: Version 3.1 及其后续版本 设置包名字为 com.atlassian.renderer.v2.components.MacroRendererComponent 到 DEBUG 级别。你可以在 管理(Administration) >> Logging and Profiling 中进行设置。 3.1 之前的版本 下载 WikiMarkupParser.class,你可以在 attachments to this page 页面中找到,生成的日志结果如下: 2009-04-23 10:27:54,789 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {spaces} 2009-04-23 10:27:55,768 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 979ms 2009-04-23 10:27:55,785 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {create-space-button} 2009-04-23 10:27:55,857 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 72ms 2009-04-23 10:27:55,862 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {recently-updated-dashboard:dashboard|showProfilePic=true} 2009-04-23 10:27:56,704 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 842ms 2009-04-23 10:27:56,707 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Entering macro rendering. Processed text: {favpages:maxResults=10} 2009-04-23 10:27:56,889 DEBUG [http-8080-1] [atlassian.renderer.v2.WikiMarkupParser] parse Exiting macro text rendering. Total time: 182ms 希望添加类: 添加下面的行到文件 <confluence-install>/confluence/WEB-INF/classes/log4j.properties 中: log4j.logger.com.atlassian.renderer=DEBUG 添加正确的 WikiMarkupParser.class 到 /confluence/WEB-INF/classes/com/atlassian/renderer/v2。你需要手动创建 renderer 和 v2 文件夹。 在页面属性合并中,这个配置应该能够给你在页面载入的时候那些插件消耗了最多的世界。你也可以使用这个工具来找到你的 Confluence 使用了那些宏: How to Search Confluence for Uses of a Macro。 结论 结合 performance tuning 页面中提供的技巧,或者打开指定宏的提高请求。在一些情况下,可能没有系统性能的结论 —— 你需要避免对过多的宏进行日志。 https://www.cwiki.us/display/CONF6ZH/Identifying+Slow+Performing+Macros

2018年09月19日 0Comments 1008Browse 0Like Read more
Confluence

在启用属性的情况下启动 Confluence 6

在一些情况下,你可以希望 Confluence 在系统启动的时候就对属性文件进行打印。如果你的 Confluence 经常进行重启,并且你可能忘记来启动针对系统诊断的属性文件日志开关。 编辑 CONFLUENCE_HOME\confluence\WEB-INF\web.xml 文件。你应该可以在文件中看到与下面输出内容类似的行。设置 autostart 参数为 true: <filter> <filter-name>profiling</filter-name> <filter-class>com.atlassian.confluence.util.profiling.ConfluenceProfilingFilter</filter-class> <init-param> <!-- specify the which HTTP parameter to use to turn the filter on or off --> <!-- if not specified - defaults to "profile.filter" --> <param-name>activate.param</param-name> <param-value>profile</param-value> </init-param> <init-param> <!-- specify the whether to start the filter automatically --> <!-- if not specified - defaults to "true" --> <param-name>autostart</param-name> <param-value>true</param-value> </init-param> </filter> 如果你希望 Confluence 在重启的时候不记录属性日志或者你的属性日志过大的话,你可以将这个参数重新设置为  false 。   https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

2018年09月19日 0Comments 798Browse 0Like Read more
Confluence

Confluence 6 属性的一个示例

下面是有关 Confluence 页面被调用的前几行的访问概述。 [344ms] - /display/ds/Confluence+Overview [313ms] - SiteMesh: parsePage: http://localhost:8080/display/ds/Confluence+Overview [313ms] - XW Interceptor: Before defaultStack: /pages/viewpage.action (ViewPageAction.execute()) [0ms] - SpaceAwareInterceptor.intercept() [16ms] - PageAwareInterceptor.intercept() [0ms] - AOP: PageManager.getPage() [16ms] - AOP: PermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [16ms] - AOP: SpacePermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [281ms] - XW Interceptor: After defaultStack: /pages/viewpage.action (ViewPageAction.execute()) [281ms] - XW Interceptor: After validatingStack: /pages/viewpage.action (ViewPageAction.execute()) ...  注意,每一个缩进的行表示的是上一个调用下面的子调用。上面的示例中,Confluence Overview 页面调用完成耗费了 344ms。在这个 344ms 中,313ms 消耗在了 sitemesh 上。   https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

2018年09月19日 0Comments 733Browse 0Like Read more
Confluence

Confluence 6 属性的一个活动

为了启用属性,使用上面描述的方法。 针对所有的用户,属性每一个访问的页面,将会在你的应用服务器中进行记录,直到你对 Confluence 进行重启。请注意每次用户访问一个链接,一个单一的属性将会被打印出来。 确定属性已经被写入到 Confluence 的日志文件中 —— 请参考 Working with Confluence Logs 页面中的内容,来对写入的日志文件和细节进行定位。 对不正常的访问缓慢确定这个问题出现的时间。 拷贝属性中的操作。为了确定哪些属性日志需要进行拷贝的时候,查找相应时间过长的链接。如果一个单一页面访问缓慢的话,那么只有这个页面的属性日志是需要的。如果 Confluence 表现的是间歇性访问缓慢或者整体访问缓慢的话,拷贝所有属性日志文件,直到对可能的访问日志完全包含。 如果 Atlassian  技术支持小组需要你对你的系统进行属性日志进行提交,你可以将你的属性日志全部提交给 Atlassian  支持小组。 使用上面提供的方法,关闭你的属性日志收集。 确定你的属性日志不再打印到 Confluence 的日志文件中了。   https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

2018年09月19日 0Comments 765Browse 0Like Read more
Confluence

Confluence 6 使用页面请求属性来对慢性能进行问题解决

这个页面告诉你如何启用页面请求属性。当这个属性启用以后,你可以查看在 Confluence 任何页面完成的一个记录消耗的时间(毫秒)。如果 Confluence 反应缓慢的话,一个关于慢页面请求的内部请求时间来帮助你识别在页面中是哪些资源导致的页面载入缓慢。 你需要访问 Confluence 服务器来查看一个属性。 启用页面请求属性 如果只希望查看慢性能宏,请参考 Identifying Slow Performing Macros 页面中的内容。  你需要具有系统管理员权限才能启用和禁用属性。 希望启用页面属性: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration链接。 在左侧的面板中选择 日志和属性(Logging and Profiling)。 在显示的 日志和属性(Logging and Profiling)界面中。选择 启用属性(Enable Profiling)。  如属性已经被启用了,那么这个按钮将会被标记为 禁用属性(Disable Profiling)。 希望禁用页面属性: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration链接。 在左侧的面板中选择 日志和属性(Logging and Profiling)。 在显示的 日志和属性(Logging and Profiling)界面中。选择 禁用属性(Disable Profiling)。  如属性已经被禁用了,那么这个按钮将会被标记为 启用属性(Enable Profiling)。 屏幕截图:修改日志级别和属性 https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

2018年09月19日 0Comments 776Browse 0Like Read more
Confluence

Confluence 6 访问日志脚本

日志访问脚本在连接:https://confluence.atlassian.com/download/attachments/133267635/Atlassian-accessLogScripts.7z?version=1&modificationDate=1203314309606&api=v2 中。希望使用这个脚本: 使用 7Zip 解压 7z 文件。 拷贝所有的访问日志到一个叫做 logs 的文件夹中。 运行 Atlassian-processDailyLog.rb。这个命令将会创建一个 csv 文件,这个 csv 文件被命名为 summary.csv 同时还会创建一些目录,这些目录为日志包含的每一个用户的操作。 运行脚本 Atlassian-processDailyLog-hourly.rb <admin/comment/create/edit/search/rss>。每一个脚本将会创建不同的 csv 文件。例如,Atlassian-processDailyLog-hourly.rb admin 将会处理处理第 3 步骤中的 admin 日志。 导入 csv 文件到 www-log-Analysis.xls (summary.csv 到 'raw stats - daily' 列表和 admin.csv 到 'admin -hours' 列表等)来创建负载属性和图形。你需要为已经创建的列表修改行的数量,这个基于日志的大小。 Note 所有的脚本是使用 Ruby 写的,同时假定日志文件包含有字符串 'confluence.atlassian.com-access.log'。如果你使用了不同的文件名,那么这个脚本也需要进行一些修改。修改行:filenameRegexp = Regexp.new('confluence.atlassian.com-access.log') 中的内容。 https://www.cwiki.us/display/CONF6ZH/Access+Log+Scripts

2018年09月17日 0Comments 803Browse 0Like Read more
Confluence

Confluence 6 高级性能诊断

请在你的系统服务请求中包括下面所有的信息,如果可能的话,你也可以在请求中包括你认为最有可能出现的问题。这样的话,可以避免我们进一步对你系统的问题进行询问。 系统信息 Confluence 服务器 你系统信息的屏幕截图 Confluence's Administration → System Information (或者将页面保存为 HTML 文件) 系统缓存状态的屏幕截图 Confluence's Administration → Cache Statistics (或者将页面保存为 HTML 文件) 找到你 Confluence 运行服务器的硬件配置信息 有几个 CPUs?CPU 的型号是什么,有多少 MHz? 你的服务器上装了多少内存? 在 Confluence 的 JVM 使用了多少服务器的内存?(例如在 JVM 中 -Xmx 和 -Xms 的设置) 在同样的服务器上,你还运行了一些其他的什么服务? Confluence 内容 在你的 Confluence 中有多少注册用户? 在通常的情况下,你的用户会属于多少用户组? 在你的 Confluence 服务器中有多少空间(全局和个人用户)? 平均来说对一个用户可以查看到多少空间? 在i的 Confluence 中有多少页面(你可以在你的数据库中执行下面的 SQL 来进行查看:'select count(*) from content where prevver is null and contenttype = 'PAGE') 在 Bandana  中存储了多少数据(通常被插件来使用存储数据)?(你可以在你的数据库中执行下面的 SQL 来进行查看:'select count(*), sum(length(bandanavalue)) from bandana') 数据库 你 Confluence 服务器使用的数据库的版本? 你 Confluence 访问数据库服务器使用的 JDBC 版本?(针对一些数据库,数据库驱动的 JRA 中中版本的版本号) 你的数据库与 Confluence 服务器是否在同一个服务器上? 如果数据库服务器和 Confluence 服务器在不同的服务器上,那么网络配置是怎么样的? 有关数据库连接细节是什么?数据库的连接池有多大?如果你使用的是标准配置,你可以在 _cfg.xml 文件中找到这个配置信息。如果你使用的是数据源信息,那么这个信息将会存储在你应用服务器上的配置文件中。请获得这些配置信息。 用户管理 你当前正在使用的用户管理或授权?(例如,Jira 或者 LDAP 用户目录或者单点登录) 如果你使用的是外部 JIRA 用户管理,那么在 Confluence 和 JIRA 之间的数据库是如何进行配置的? 如果你使用的是 LDAP 管理: 有关 LDAP 服务器的版本是什么? LDAP 服务器和你的 Confluence 应用之间的配置是什么样的? 诊断 观察到的问题 那个页面存在载入缓慢? 如果是一个特定的 WIKI 页面,请将这个 WIKI 页面中的源代码也同时提交 这个页面总是载入缓慢还是偶尔载入缓慢? 监控数据 在进入发现一个单独的问题的时候,对理解多个性能问题会有所帮助。我们将会处理突然的的高负载,或者缓慢增加的负载,或者有可能是某一种特定情况下的负载情况(每天,每周,甚至每个月),这些请求的增加将会对系统性能造成多大的影响?对系统进行一些持续的监控将有助于你对系统的负载情况进行更多的了解。 下面是一些有关 confluence.atlassian.com 系统的负载情况,显示如下 负载 这个图片显示了连续 2 天中的系统负载情况。这个图片显示了正常的系统负载,这个负载的产生通常是因为用户的活动而产生的,这个没有显示出系统目前没有遇到主要的问题。 增加数据库连接的线程 Java 活动线程数量 有 2 个图片将会显示应用服务器中线程活动数量(第一个图片)和数据库中连接池的大小(第二个图片)。你可以看到突然的系统线程增加将会导致数据库服务器的连接的增加。 数据库连接池大小 数据库连接池的最高值已经超过了 112。这个已经超过了默认的数据库的连接配置(100)。当这个情况出现时候,你在使用 Confluence 的时候出现一些访问的缓慢就不奇怪了。一些用户可能会遇到系统崩溃的信息,因为一些用户的请求不能获得数据库连接。 我们可以通过这些图片很容易的找到我们系统配置的一些问题。这些问题不是非常重要的问题,因为你可以通过简单的增加数据库连接来解决。 我们对 Confluence 进行一些持续的监控(我们使用 Hyperic),如果你在遇到问题的时候能够同时发送你系统的一些监控信息,这个将更有助于帮我们找到你的问题。 访问日志 How to Enable User Access Logging,包括有了如何将日志导出为一个独立文件的相关信息。 你可以将这些对这些文件进行分析,例如 AWStats,或者手动查看那些页面在载入的时候存在载入缓慢。 属性和日志 启用 Confluence 的自带的属性和性能分析,请参考页面 Troubleshooting Slow Performance Using Page Request Profiling 中的内容。 如果只是一个单一的页面相应缓慢,你应该对这个页面进行一系列的请求 如果性能问题是间歇性的出现,或者只是直观的感觉到了系统相应缓慢,你可以使性能监控功能保留监控 30 分钟到一个小时来获得更多有关的信息。 找到 Confluence 的标准输出日志(在日志中将会保留上面的数据)。将整个日志目录进行压缩。 在系统出现反应缓慢的时候进行 Take a thread dump。 CPU 负载 如果你遇到了 CPU 的负载率很高的话,请 install the YourKit profile 然后将 CPU 进行监控的时候附加上 2 个 profiler 的导出。如果 CPU 的查看足够长的话,请间歇 30 到 60 秒进行 profiles。最通常的的 CPU spikes 应该是操作系统的虚拟机。 如果 CPU 的使用率高达 100%,请尝试使用 Live Monitoring Using the JMX Interface,在一些情况下也可以使用 Top threads plugin。 站点指标和脚本 对你安装实例了解用户的访问和使用也是非常重要的。请使用 Access Log Scripts 和 sql scripts 来为你的示例创建状态情况。 下一步 在 https://support.atlassian.com 中打开问题提交请求,然后将你收集的所有数据添加到你需要的请求中。这个将会给我们对你系统进行诊断所需要的足够信息,我们可以根据你提交的信息对你的系统性能进行诊断。当你创建完成问题后,请对你创建的问题进行跟踪。   https://www.cwiki.us/display/CONF6ZH/Requesting+Performance+Support

2018年09月17日 0Comments 1430Browse 0Like Read more
Confluence

Confluence 6 基本性能问题诊断步骤

基本性能问题诊断步骤 开始下面的程序: 进入 Troubleshooting Confluence hanging or crashing 页面找到已知的主要性能问题。 进行页面 Performance Tuning 中的操作来帮助你对性能进行优化。 请求基本性能支持 如果上面的步骤没有能够为你提供帮助,你也不知道从哪里开始,你可以创建一个 support ticket 然后从基本的信息开始: atlassian-confluence.log catalina.out 日志(或者你的应用服务器日志),同时包含一系列的 thread dumps 在每 10 秒钟。 一些可能的信息的描述: 你对系统进行了什么样的修改? 你系统的性能问题是什么时候开始的? 在每一天的时候你的系统的性能通常在什么时候出现? 在那些页面或者操作的时候出现系统性能问题? 有没有什么规律? 如果可以的话,你可以继续对系统的性能进行一些更进一步的诊断。 https://www.cwiki.us/display/CONF6ZH/Requesting+Performance+Support

2018年09月17日 0Comments 769Browse 0Like Read more
Confluence

Confluence 6 内存使用和需求和一些问题

系统备份和恢复 Confluence  的备份和恢复是与数据库中数据量的大小有关。这个操作可能会对 Confluence 的性能产生很多关键性的影响并且大量消耗内存。如果你在 Confluence 的系统备份和恢复过程中遇到了 OutOfMemoryError 错误,我们强烈推荐你使用 Production Backup Strategy 进行系统的备份和恢复。 当你在 Confluence 系统备份和恢复的时候遇到了  OutOfMemoryError 错误,你希望通过增加内存的大小来修复这个错误的话。我们应该增加多少内存呢?一个指导方针是,查看你备份中的 entities.xml 文件的大小。这个文件的大小是 Confluence 需要载入的所有数据的大小,同时这个大小也是最小的需求值。针对这个大小,添加 64 - 128MB 到 Confluence 的内存来保证 Confluence 在系统备份的时候有足够可用的内存。有关增加可用内存的方法,请参考页面 increasing available memory 中的内容。 我们不能控制的已知问题 下面的一些内存的问题,我们可能没有办法进行控制: 针对 Oracle 10g JDBC 驱动的内存泄漏。我们没有太多可以做的地方。 一个用户发现了在 Tomcat 5 的版本上,如果使用 IBM JDK,在 PowerPC 平台上有严重的内存问题。 如果你在使用的时候遇到了比较严重的内存泄漏问题,请登录 http://support.atlassian.com。我们的内存属性空间选择的是 YourKit。这个工具能够帮助你向我们提供你机器上存在有内存泄漏的地方。 Confluence 对一些操作的响应时间过长 一个导致 Confluence 突然不响应的问题可能是 Confluence 正在运行 JVM 垃圾清理。为了确定这个是不是正在发生的情况,请详细查看垃圾清理程序然后检查 Java 花了多长时间才清空内存。如果临时停止响应的时候与 Java 运行垃圾清理的世界相同的话,那么就可以证明是 Java 的垃圾清理导致了这个问题。 详细的垃圾清理日志将会告诉你 Java 的垃圾清理程序是什么时候开始的,在这次垃圾清理中花了多长时间,和多少垃圾被清理。 为了确定垃圾清理 gc 被争取的日志,在启动 Confluence 的时候,添加下面的选项 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:gc.log。替换 gc.log 为你 gc.log 文件的绝对路径。 例如,如果你下 Windows 服务下的话,运行: tomcat5 //US//Confluence ++JvmOptions="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:c:\confluence\logs\gc.log" 或者在  bin/setenv.sh, 中设置: export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:${CATALINA_BASE}/logs/gc.log" 如果你修改了 bin/setenv.sh 文件,你需要重启 Confluence 来使配置生效。 有什么办法可以让 Java 的垃圾清理消耗最小的时间呢?请参考  http://java.sun.com/docs/hotspot/gc1.4.2/ 页面中的内容来确定 JVM 垃圾清理对正在运行的系统产生最小的影响。   https://www.cwiki.us/display/CONF6ZH/Memory+Usage+and+Requirements

2018年09月17日 0Comments 840Browse 0Like Read more
Confluence

Confluence 6 内存使用和需求

管理 Confluence 性能和内存的使用和有什么资源可用是密切相关的。如果你给 Confluence 更多的内存来缓存内容,Confluence 将会运行得更加迅速,但是相对比较低的内存环境中,Confluence 也能够很好的进行工作。下面是有关 Confluence 站点进行配置的一些小技巧。 增加 Confluence 中可用的内存数量 查看 增加 JIRA 内存 页面来获得如何为 Web 应用程序增加可用内存,通常这个策略也可以在 Confluence 上使用。 嵌入数据库 嵌入的 HSQL 数据库能够允许 Confluence 访问存储到内存中的数据库,当 Confluence 服务运行的时候。当你遇到内存不够用或者溢出的时候,你可以考虑 migrating Confluence to an external database 中的方案。 缓存 在默认的情况下,Confluence 在内存中保存有大量的的缓存数据来提高用户的使用体验。这的配置需要增加内存的使用来换取效率。大型 Confluence 站点的管理员可能需要配置较多的内存来提高 Confluence 的使用效率。 为了自定义 Confluence 缓存来符合你的使用,请参考 Performance Tuning 页面中的内容。 为了增加 Confluence 可用的内存数量,请参考 How to fix out of memory errors by increasing available memory 页面中的内容。 邮件错误队列 Confluence 保留所有电子邮件发送内部错误的对立信息。在内部错误包括有网络连接问题,电子邮件队列可用在错误被修复后重新手动发送。在一些特定的情况下,电子邮件队列可能会包含有一些大数据的对象。这个队列通常是能够自动刷新的,但是如果你有很多的电子邮件错误,你可能会看到你的内存出现了问题。 附件 对大附件进行索引,我们需要将附件内容载入到内存中。当将附件载入内存的时候,我们将会遇到临时的系统资源高消耗同时还会导致索引失败,因为不是所有的附件都能载入到内存中。   https://www.cwiki.us/display/CONF6ZH/Memory+Usage+and+Requirements

2018年09月17日 0Comments 701Browse 0Like Read more
Archives
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,320)
    • Confluence (663)
    • Gradle (12)
  • U.S. (433)
  • 文化旅游 (142)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1