可以通过tinyproxy通过代理主机访问公网Internet解决局域网内部机器无法访问外部网络的问题
戴尔R740服务器安装PVE系统提示找不到硬盘
新买的服务器硬盘处于Raid状态,需要在设备管理中查看硬盘挂载在哪个pcre下管理,进入pcre中,把硬盘都转换为非Raid状态。
修改系统配置改为AHCI状态,关闭Raid后,重启服务器可以读取到硬盘
nohup java \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseG1GC \
-XX:G1HeapRegionSize=16m \
-Xms3g \
-Xmx3g \
-XX:G1MaxNewSizePercent=70 \
-XX:ParallelGCThreads=12 \
-jar -Duser.timezone=GMT+08 java.jar \
--spring.profiles.active=prod > runtime.log 2>&1 &
服务jvm调整,java服务持续运行后,会触发新生代扩容导致频繁扩容,jvm占用空间上升导致服务不稳定,通过限制整体大小,避免产生问题。默认的大小14GB,预留内存低于这个的都可能会产生问题。在使用指令的时候需要通过监控,再进行调整。比如内存新生代增加速度,老年代容量
Mysql8 授权root远程访问
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
update user set host = "%" where user='root';
select host, user, authentication_string, plugin from user;
flush privileges; #刷新权限
修改root密码
alter USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
超音数分析助手,能够基于大模型,通过连接数据库进行模型建立,进行数据统计和数据分析。
腾讯音乐出品的这个系统,确实有些意思,能够通过连接大模型对自然语言分析然后得到一些报表,未来一些统计报表使用这个能够更加灵活的得出数据,减少开发负担,提高统计效率。
查询达梦慢运行语句
SELECT *
FROM ( SELECT
DATEDIFF(SS, LAST_RECV_TIME, SYSDATE) SS,
A.SESS_ID,
A.THRD_ID,
A.USER_NAME ||':' || A.CURR_SCH LOGIN_INFO,
A.SQL_TEXT,
C.STATUS TRX_STATUS,
CAST( M.TS * 1.0/1024/1024 AS NUMBER(38,2)) USED_MEMORY_M,
'SP_CLOSE_SESSION(' ||A.SESS_ID ||');' KILL_SESS,
SF_GET_SESSION_SQL(A.SESS_ID) FULL_SQL ,
A.APPNAME|| A.CLNT_IP CLNT_INFO,
A.TRX_ID,
B.IO_WAIT_TIME,
B.LOGIC_READ_CNT,
B.PHY_READ_CNT,
B.RECYCLE_LOGIC_READ_CNT,
B.RECYCLE_PHY_READ_CNT,
C.UPD_CNT,
C.DEL_CNT,
C.INS_CNT,
C.ROLLBACK_FLAG
FROM V$SESSIONS A,
V$SQL_STAT B,
V$TRX C,
(SELECT SUM(TOTAL_SIZE) TS,CREATOR FROM V$MEM_POOL GROUP BY CREATOR) M
WHERE A.STATE ='ACTIVE'
AND A.SESS_ID = B.SESSID
AND A.TRX_ID = C.ID
AND A.SESS_ID = C.SESS_ID
AND A.THRD_ID = M.CREATOR)
ORDER BY SS DESC
查看服务器当前内存和cpu使用率
echo "==== CPU 和内存使用率 ====" \
&& top -bn1 | grep "Cpu(s)" | awk '{print "CPU使用率: " 100 - $8 "%"}' \
&& free -m | awk 'NR==2{printf "内存使用率: %.2f%%\n", ($3/$2)*100}'
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()
}
}
达梦慢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'))
时序型项目,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。