查看服务器当前内存和cpu使用率

echo "==== CPU 和内存使用率 ====" \
&& top -bn1 | grep "Cpu(s)" | awk '{print "CPU使用率: " 100 - $8 "%"}' \
&& free -m | awk 'NR==2{printf "内存使用率: %.2f%%\n", ($3/$2)*100}'

0

Flutter assembleDebug编译缓慢 2025有效

settings.gradle.kts 修改
pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        maven("https://maven.aliyun.com/repository/public") // 阿里云镜像
        maven("https://maven.aliyun.com/repository/central") // Central 仓库镜像
        maven("https://maven.aliyun.com/repository/gradle-plugin") // Gradle 插件镜像
        mavenCentral()
        gradlePluginPortal()
    }
}
build.gradle.kts 修改
allprojects {
    repositories {
        maven("https://maven.aliyun.com/repository/public")
        maven("https://maven.aliyun.com/repository/central")
        google()
        mavenCentral()
    }
}

0

达梦慢SQL分析

调整达梦Log配置文件,存储位置,日志分割配置

/app/dmdata/DAMENG/sqllog.ini 达梦Log配置文件

登录达梦数据库,执行下面代码

SP_SET_PARA_VALUE(1,'SVR_LOG',0)    关闭svr_log
SP_SET_PARA_VALUE(1,'SVR_LOG',1)    开启svr_log
SP_REFRESH_SVR_LOG_CONFIG();        刷新配置生效

生成的log文件通过正则进行查询:[0-9][0-9][0-9][0-9][0-9]\(ms\) 查10s以上的sql

查询dm数据库分配的内存占用

SELECT SUM(PARA_VALUE)/1024
FROM (select *
from v$dm_ini
where "PARA_NAME" in ('MEMORY_TARGET',
'BUFFER',
'RECYCLE',
'HJ_BUF_GLOBAL_SIZE',
'HAGR_BUF_GLOBAL_SIZE',
'CACHE_POOL_SIZE' ,
'DICT_BUF_SIZE',
'SORT_BUF_GLOBAL_SIZE',
'RLOG_POOL_SIZE'))

0

时序型项目,JDK8,java部署后内存占用持续增长导致溢出。

使用arthas进行查看分析,年轻代持续创建没有进行GC,达到max值后进行GC,默认的并行垃圾回收会对Total进行持续增长,默认单jar最大16G内存占用。

实际单jar的年轻代占用gc后在300MB左右,但是默认不达到Total值不进行GC,Total值在5G

所以年轻代里面大部分都是已经失效的内存数据,只是没有进行GC回收,作为垃圾占用服务器内存,导致服务器内存持续增长。

解决方案,使用G1垃圾收集器,调整垃圾回收速度,加快垃圾回收触发。

修改后程序稳定在1-2G之间,没有产生持续增长的问题。

java \

-XX:+UnlockExperimentalVMOptions \

-XX:+UseG1GC \

-XX:MaxGCPauseMillis=100 \

-XX:InitiatingHeapOccupancyPercent=20 \

-XX:G1HeapRegionSize=4M \

-XX:NewRatio=2 \

-Duser.timezone=GMT+08 \

-jar main.jar 

  • -XX:+UnlockExperimentalVMOptions
    解锁实验性的虚拟机选项,使得可以使用一些实验性或不常见的 JVM 特性。

  • -XX:+UseG1GC
    启用 G1 垃圾收集器(Garbage First GC)。G1 是一个旨在适应大内存应用的垃圾收集器,它在性能和暂停时间上有较好的平衡。

  • -XX:MaxGCPauseMillis=100
    设置垃圾回收时最大暂停时间为 100 毫秒。G1 会尝试在垃圾回收过程中尽量减少停顿时间。

  • -XX:InitiatingHeapOccupancyPercent=20
    设置堆内存占用达到 20% 时,启动垃圾回收。这个参数用于控制何时触发垃圾回收。

  • -XX:G1HeapRegionSize=4M
    设置 G1 垃圾收集器的堆区域大小为 4MB。G1 将堆划分为多个区域,以优化内存管理。

  • -XX:NewRatio=2
    设置新生代和老年代的比例为 2。即新生代的大小是老年代的 1/2。

0

linux默认配置文件地址:/etc/dm_svc.conf

配置之前,需要注意事务一致性和实时性,强实时性情况下,不建议使用

LOGIN_MODE

指定优先登录的服务器模式。0:优先连接 Primary 模式的库,Normal 模式次之,最后选择 Stantby 模式;1:只连接主库;2:只连接备库;3:优先连接 Standby 模式的库,Primary 模式次之,最后选择 Normal 模式;4:优先连接 Normal 模式的库,Primary 模式次之,最后选择 Standby 模式。缺省值为 4。

SWITCH_TIMES

检测到数据库实例故障时,接口在服务器之间切换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有效值范围 1~9223372036854775807,缺省值为 3。

SWITCH_INTERVAL

表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围 1~9223372036854775807,缺省值为 200。

RW_SEPARATE

指定是否启用读写分离。取值范围:0、1、2、4。0 表示不启用读写分离;1 表示启用读写分离;2 表示启用读写分离,且备库由客户端进行选择;4 表示启用读写分离,且连接备库时仅允许连接事务一致的备库。缺省值为 0。

启用读写分离时,LOGIN_MODE 参数失效。

RW_PERCENT

启用读写分离时,读写分离的分发比例,有效值范围 0~100,缺省值为 25。

参考:

达梦读写分离集群配置

达梦集群介绍

0

dm.jdbc.driver.DMException: 超出全局分组空间,请调整HAGR_BUF_GLOBAL_SIZE、HAGR_BUF_SIZE、HAGR_BLK_SIZE

select * from SYS."V$DM_INI" where PARA_NAME = 'HJ_BUF_GLOBAL_SIZE';

call SP_SET_PARA_VALUE (1, 'HJ_BUF_GLOBAL_SIZE',200000);

治标不治本,还是需要调整查询语句,短时间内不报错但是访问速度较慢

0

React Web基础入门

作为入门课来看不错,对整个流程有一个简单的认知构建

0

test

0