- 博客(1667)
- 资源 (17)
- 收藏
- 关注
转载 JVM参数调优
XX:+UseStringDeduplication -XX:+DisableExplicitGC #其他优化。-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g #元空间配置。-Xloggc:/logs/gc.log -XX:+PrintGCDetails #GC日志与监控。-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize。合并重复的字符串对象,节省堆内存(适合字符串操作频繁的场景)。G1回收器(平衡型,JDK9+默认)
2025-05-22 20:16:56
16
转载 nginx实时请求监测-ngxtop
ngxtop是一个实时命令行工具,可以分析nginx访问日志,以表格形式将http请求的主要指标直观展示。ngxtop将nginx的访问请求数据实时动态展示,并支持按字段过滤请求。ubuntu环境安装,测试系统为Ubuntu 24.04.2 LTS。centos环境安装。
2025-05-22 20:06:31
12
原创 线程池线程数配置
线程数 ≈ CPU 核心数 × (1 + 任务等待时间 / 任务计算时间)CPU 密集型→ 少量线程足够;IO 密集型→ 可以设置更高;混合型任务→ 可拆分后按比例配置多个线程池。
2025-05-22 20:02:41
253
原创 java并发-Semaphore信号量
举个生活中的例子:银行总共有3个柜台办理业务,有很多人来排队,但一个柜台同时只能有一个人办理业务,也就是说最多同时只能有3个人办理业务。其他的人都要排队等待,等到有一个人办理好了,下一个人才能来办理。Semaphore是用来控制同时访问特定资源的线程数量,它通过协调各个线程,来保证合理的使用公共资源。它通过维护一组许可(permits)来限制同时访问某个资源的线程数量。以下是一个使用 Semaphore 的示例,展示如何限制同时访问某个资源的线程数量。
2025-05-22 19:54:01
205
原创 Nginx配置记录访问信息
Nginx被广泛应用于各种场景如:Web服务器、反向代理服务器、负载均衡器、Web应用防火墙(WAF)等在实际的产品开发中,无论是功能测试或访问行为审计,都需要详细记录每一次访问行为。
2025-05-20 21:10:09
350
原创 vi实时查看日志
按 Ctrl+C 停止 tail -f,然后按 Enter 返回 vim。可以在 vim 中看到实时日志,但无法直接编辑。如果只是查看日志而不需要编辑,less 更适合。在 vim 中执行 tail -f。在 vim 中打开日志文件。用 watch 定期刷新日志。重新加载文件以获取最新内容。将日志内容导入 vim。-n 1 表示每秒刷新一次。按 :e 手动刷新文件内容。
2025-05-19 21:08:57
259
原创 Windows 11 中搜索服务索引文件大处理
是 Windows 11 中搜索服务索引的数据库文件,用于存储文件、邮件等内容的索引信息,以提供快速搜索结果。如果磁盘空间非常紧张,且不经常使用系统搜索功能,可以采用此方法,但不建议长期使用,因为会失去快速搜索能力。这是较为推荐的方法,能有效减小文件大小,同时保留搜索功能。暂时禁用 Windows 搜索服务并删除文件。文件或重要数据,以防操作失误导致数据丢失。在进行上述操作前,建议先备份。
2025-03-30 11:28:08
459
原创 java获取Jvm信息
通过ManagementFactory获取MemoryMXBean。Jvm信息使用ManagementFactory去获取。OS运行信息推荐使用oshi去获取。使用Runtime对象去获取。获取系统内存信息(非jvm)获取jvm运行线程信息。
2025-03-28 21:18:13
210
原创 Linux中执行 ifconfig 命令时提示 “未找到命令”
一般情况下,安装完 net-tools 包之后,ifconfig 命令就会自动被添加到 PATH 环境变量所包含的路径中。通常是由于系统没有安装 net-tools 包,或者该命令不在系统的 PATH 环境变量所包含的路径中。在 Linux 系统里,若执行 ifconfig 命令时提示 “未找到命令”如果 /sbin 或者 /usr/sbin 不在 PATH 环境变量中。编辑 ~/.bashrc 或者 /etc/profile 文件。确认命令是否在 PATH 环境变量中。安装 net-tools 包。
2025-03-21 12:57:35
631
原创 Java部署在window启动报unable tocreate tempdir
在Windows系统中,Java应用在运行时会试图在默认的临时目录中创建文件。该临时目录通常由系统环境变量TEMP或TMP指定。如果这些变量设置不正确、指向一个无效的路径,或者操作系统的权限不足,就会导致“Unable to create tempdir”错误。还可以通过启动Java程序时指定java.io.tmpdir属性来改变临时目录。如果系统自动创建临时目录失败,我们可以手动创建目录。更改Java程序的JVM参数。
2025-03-11 20:27:24
242
原创 脚本初始化Oracle数据库
如果需要自动化执行脚本,可以将命令写入 Shell 脚本中。在执行脚本时,可以将输出重定向到日志文件,便于后续排查问题。如果脚本较短,可以将其内容粘贴到命令行中逐行执行。执行完脚本后,验证数据库对象是否创建成功。
2025-03-03 14:16:04
274
原创 WebSocket替代方案SSE实时通讯
实时通讯是常见的需求,通常使用 WebSocket 来实现这一功能,但在很多场景下,客户端只是需要从服务器接收消息,而非进行双向通讯。这导致 WebSocket 的全双工特性并没有得到充分的利用。Server-Sent Events (SSE) ,一种轻量级的方式来实现服务器向客户端推送消息的需求,同时对比 SSE、WebSocket 和传统轮询技术的优劣,选择适合的实时通讯方案。
2025-02-25 21:35:42
826
转载 SpringBoot 多租户架构,轻松驾驭复杂业务场景
最后需要实现一个租户管理的功能,以便在系统中管理不同的租户。具体来说,我们可以使用Spring Cloud的服务注册与发现组件Eureka来注册每个租户的实例,并在管理界面中进行相应的操作。私有云环境指的是由企业自行搭建的云环境,不对外提供服务,主要应用于企业内部的数据存储、管理、共享和安全控制。每个租户的服务都在注册中心以不同的应用名称进行注册,客户端可以通过服务名称来访问对应租户的服务。租户信息的维护包括添加、修改、删除、查询等操作,要求能够根据租户名称或租户ID快速查找对应的租户信息。
2025-02-25 21:29:13
83
原创 线程池10种常见坑
很多人随意配置线程池参数,比如核心线程数 10,最大线程数 100,看起来没问题,但这可能导致性能问题或资源浪费。如果线程池中的任务是阻塞的(如文件读写、网络请求),核心线程会被占满,影响性能。很多人用线程池后,不监控其状态,导致任务堆积、线程耗尽的问题被忽略。线程池中的任务抛出异常时,线程池不会直接抛出,导致很多问题被忽略。任务数远大于线程数,导致任务无限堆积在队列中,最终可能导致。这种配置在任务激增时,会创建大量线程,系统资源被耗尽。,它是无界队列,任务堆积可能会导致内存溢出。,导致程序无法正常退出。
2025-02-25 21:21:37
610
原创 在Linux系统下修改Docker的默认存储路径
在Linux系统下修改Docker的默认存储路径可以通过多种方法实现,下边是通过修改daemon.json文件方式实现。使用 rsync 或 mv 命令将现有数据迁移到新目录。推荐使用 rsync 以避免数据丢失。查看当前Docker的存储路径,默认为。命令,确认存储路径已更改为新的位置。编辑daemon.json文件。查看当前Docker存储路径。停止Docker服务。重启Docker服务。
2025-02-15 14:10:07
919
原创 newgrp docker需要每次刷新问题
每次都需要运行 newgrp docker 的原因: 当用户被添加到 docker 组后,当前会话并不会立即更新组信息,因此需要通过。这样每次打开终端时,脚本会自动检查并切换到 docker 组。,可以在终端中配置一个自动刷新的脚本。切换到新的用户组以使权限生效。如果不想每次都手动运行。
2025-02-15 13:26:32
411
原创 Linux系统中搜狗输入法无法输入中文
出现 “error while loading shared libraries: libQt5QuickWidgets.so.5: cannot open shared object file: No such file or directory” 错误时,这表明系统在加载程序时找不到 libQt5QuickWidgets.so.5 这个共享库文件。在系统菜单中搜索 “Fcitx 配置”,确认搜狗输入法已添加到输入法列表中,并且顺序正确。有时输入法配置文件可能损坏,导致无法正常输入中文。
2025-02-15 11:57:53
776
原创 Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start
由于墙的问题,导致拉取国外的K8s镜像失败。选中自己的kubernetes 版本。kubernetes运行成功。PowerShell运行。
2025-02-07 10:58:29
467
原创 python离线安装包
【Linux、mac用户】:各种Python的安装包,主要提供Linux、mac版本的后缀是".whl"或’’.tar.gz;’’。后者需要解压,前者直接安装。【windows用户】:各种Python的安装包,提供Windows版本的后缀是".whl",可以直接安装,无须解压;否则正常解压安装。
2025-02-06 10:35:31
406
原创 Dockerfile构建容器镜像
Dockerfile 是构建 Docker 镜像的核心工具,它不仅简化了镜像构建的过程,也为容器的可移植性和一致性提供了保证。在编写 Dockerfile 时,我们要考虑镜像体积、构建速度、层的优化等问题,确保最终生成的镜像符合生产环境的需求。
2025-02-04 16:29:09
1071
原创 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
这是因为 在老版本系统中可以是用mklink来创建软连接,但在最新的windows系统中若使用的是powershell则无法使用该命令,则此时需要在。命令后即可执行mklink命令。
2025-02-02 21:42:54
890
原创 jvisualvm工具使用
jvisualvm是JDK自带的具有图形界面操作功能的JVM性能监控和诊断工具,它不仅能分析和诊断堆转储文件,在线实时监控本地JVM进程,还能监控远程服务器上的JVM进程。
2025-01-31 21:49:50
5108
1
原创 jinfo命令详解
6)修改当堆内存对象所占空间超过80%时进行扩容。4)开启堆内存溢出日志打印(默认是关闭的)命令来查看21412进程的JVM参数信息。5)设置堆内存溢出时的堆转储文件路径。2)获取新生代大小 JVM 参数值。option 有以下这些选项参数。3)开启GC打印日志。7)最后我们再来使用。
2025-01-31 21:45:17
423
原创 JVM的GC详解
我们大体可以看出GC原因是Allocation Failure即新生代不能分配对象,触发一次新生代GC,新生代GC前后空间由3348K变为512K,整堆空间由3348K变为1692K,最后输出了GC耗时、系统响应耗时以及应用程序暂停时间。执行第二行代码bytes = new byte[1024 * 1024];再次进程内存分配时,发现新生代空间不足出现以此minor gc,对应输出结果如下,首先代码执行到byte[] bytes = new byte[1024 * 1024];获取GC日志方式大抵有两种。
2025-01-31 20:46:19
1569
原创 jhat命令详解
针对服务性能问题,还需要结合具体代码进行排查,观察是否有大量应该被回收的对象一直在被引用,或者是否有占用内存特别大的对象无法被回收,通常在调优的时候这两点关注的会比较多。jhat 命令通常与 jmap 搭配使用,用来分析 jmap 生成的 dump 文件,jhat 内置了一个微型的。翻到最底部可以查询 jhat 提供的几个查询功能,部分列表信息如下。在操作系统终端输入如下命令,即可查看相关信息,部分示例如下。服务器,生成 dump 的分析结果后,可以在浏览器中查看。,可以查询快照文件分析结果。
2025-01-31 20:21:03
620
原创 jmap命令详解
参数用于打印 heap 的概要信息,GC 使用的算法,heap 的配置及 wise heap 的使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况。jmap 用于生成 heap dump 文件,如果不使用这个命令,还可以使用。从日志中,可以很清楚的看到 Java 堆中各个区域目前的情况。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。命令的使用格式如下。命令的使用格式如下。
2025-01-31 20:15:52
510
原创 jstat命令详解
在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。在操作系统终端输入如下命令,即可查看相关信息,示例如下。
2025-01-31 20:12:19
1018
原创 Java 泛型<? extends Object>
在 Java 泛型中,<?extends Object> 和 <?> 都表示未知类型,但它们在某些情况下有细微的差异。泛型的引入是为了消除运行时错误并增强类型安全性,使代码更具可读性和可维护性。在 JDK 5 中引入了泛型,以消除编译时错误并加强类型安全性。这种额外的类型安全性消除了某些用例中的强制转换,并使程序员能够编写泛型算法,从而生成更具可读性的代码。
2025-01-31 16:08:51
713
原创 常见Arthas命令与实践
Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。的 IDEA 插件。这是一款能快速生成 Arthas命令的插件,可快速生成可用于该类或该方法的 Arthas 命令,大大提高排查问题的效率。
2025-01-21 23:29:21
1256
原创 Arthas工具详解
凡是涉及性能调优的内容,几乎都必须建立在监控系统之上,不一定要全面,但至少能让调优前有指标数据可参考。①流量方面:流量峰值、流量均值、用活时间段等。②对象方面:分配速率、每个请求的分配均值/峰值、提升速率、每次提升总量均值等。停顿时长、GC触发间隔、GC回收总量等。改善代码 > 装配合适的GC回收器 > 重新设置内存比例/大小 > 调整JVM参数。但需重点注意的是:上述的GC调优理论都是基于G1之前的分代垃圾收集器而言的,G1。
2025-01-21 23:19:05
1019
原创 [ERR] Node xxx is not empty or contains some key in database 0
创建redis集群报错:[ERR]NodexxxisnotemptyEitherthenodealreadyknowsothernodesorcontainssomekeyindatabase0。
2025-01-07 00:36:47
285
原创 使用JMeter对Linux生产服务器进行压力测试
点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IP,port填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等)发现这个文件找不到,我们看下图片中的D:\apache-jmeter-5.3\bin\…将下载好的Jmeter-plugins-manager jar包放在jmeter包下的。新建存放图片的路径,比如D:\A_jmeter_test\picture;来实时监控被压测服务器的性能;
2024-12-31 15:28:44
1394
原创 Xshell 7日志录制
打开该会话进行连接,Xshell 将自动开始记录所有会话内容(包括你在终端输入的命令和终端返回的输出)。通过这种方式,你就可以把线上服务器的文件内容录制到本地,便于保存和查看。或者:这些命令的输出内容会被记录到本地的日志文件中。设置完日志文件路径后,点击“确定”保存设置。运行要录制的命令,比如查看文件内容的。
2024-12-30 19:19:51
976
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人