0

Api 部署在负载很重的 Wildfly 13 红帽服务器上。一段时间后,wildfly 访问日志没有写入任何请求,但我们可以看到 api 被多个设备使用。但是,如果我们 telnet ip 和端口它正在工作。我们可以看到 api 正在工作,因为正在写入内部日志。发生这种情况时,我们必须始终重新启动 wildfly。在那一刻重新加载不起作用。我们观察到的另一件事是,通常请求计数超过 100 万(大约 1.2 和 150 万请求)所有 http 会话都无效,即使从 api 级别我们也看不到任何内存泄漏(缓存没有逐渐增加,ram 使用)。

在启动服务器数据源统计时,如下所示 Wildfly 服务器启动

经过几天的运行但仍在工作 跑了几天

最大使用连接未显示但正在运行 最大使用未显示

此时的 Jboss Cli

即使从上述状态请求正在处理

最后,请求未处理,但应用程序正在运行 请求未处理管理控制台

请求未处理 Jboss Cli

以下是我在独立 xml 中的数据源配置

<datasource jndi-name="java:/EAPG_CON" pool-name="EAPG_CON" statistics-enabled="true">
                    <connection-url>jdbc:mysql://localhost:3306/******?autoReconnect=true&amp;useSSL=false</connection-url>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <driver>mysql</driver>
                    <pool>
                        <min-pool-size>20</min-pool-size>
                        <initial-pool-size>20</initial-pool-size>
                        <max-pool-size>200</max-pool-size>
                        <flush-strategy>AllGracefully</flush-strategy>
                    </pool>
                    <security>
                        <user-name>******</user-name>
                        <password>******</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                        <background-validation>true</background-validation>
                        <use-fast-fail>true</use-fast-fail>
                        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                    </validation>
                    <timeout>
                        <idle-timeout-minutes>2</idle-timeout-minutes>
                    </timeout>
                </datasource>

以下是我的默认服务器设置

<subsystem xmlns="urn:jboss:domain:undertow:6.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="true">
            <buffer-cache name="default"/>
            <server name="default-server">
                <http-listener name="default" tcp-keep-alive="true" socket-binding="http" max-post-size="50000000" always-set-keep-alive="false" record-request-start-time="true" no-request-timeout="10000" request-parse-timeout="2000" redirect-socket="https" enable-http2="true"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <location name="/download" handler="download-dir"/>
                    <http-invoker security-realm="ApplicationRealm"/>
                </host>
            </server>
            <servlet-container name="default" default-session-timeout="60">
                <jsp-config/>
                <websockets/>
            </servlet-container>
            <handlers>
                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
                <file name="download-dir" path="*************" directory-listing="true" follow-symlink="true"/>
            </handlers>
        </subsystem>

我在这里注意到的另一件事是,如果我将 tcp-keep-alive 设置为未定义,那么这很快就会发生

以下是我们使用的 PC 规格 电脑规格 任何想法为什么会这样 请建议

4

0 回答 0