- 博客(531)
- 资源 (4)
- 收藏
- 关注

原创 Linux上TCP的几个内核参数调优
Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。
2024-06-10 23:26:44
934
原创 RocketMQ源码解读-命名服务-NamesrvController
NamesrvController 是 Apache RocketMQ 中 Name Server 的核心控制器,负责协调和管理各个组件,确保 Name Server 的正常运行。RPCHook通过 NamesrvController 的协调,RocketMQ 的 Name Server 实现了高效的路由管理、可靠的配置维护和灵活的网络通信,成为集群中不可或缺的元数据枢纽。
2025-04-20 11:58:59
1012
原创 【笔记】ChatTTS本地部署CUDA 12.4+Triton-Windows(显著降低GPU内存)
在 HuggingFace 上下载 triton 的 Windows 包:https://hf-mirror.com/madbuda/triton-windows-builds。重启 PowerShell 或运行 refreshenv(如果安装了 chocolatey)使更改生效。打开 Andconda PowerShell Prompt。安装 Git 和 Miniconda。安装CUDA 11.8。模型摘要查看截图示例。
2025-03-30 18:28:29
663
原创 DeepSeek 版本对比:基础版 vs 满血版 vs 蒸馏版
在模型推理(文本生成)阶段,还有一些用户可控制的参数会影响DeepSeek的输出性能,如温度(temperature)、采样阈值(top_p、top_k)、最大生成长度等。同时,由于经过强化学习,R1在回答问题时倾向详细的推理过程,对于非常简单的问题可能出现**“过度思考”**(输出冗长、不必要的步骤),需要在应用中加以控制。最新的DeepSeek版本(R1系列)提供了从数亿到数千亿参数的多档模型,再加上开源的优势,开发者能够根据自身场景选择适当的版本部署,并通过量化、微调等手段进一步优化性能和效果。
2025-03-03 10:24:26
1715
原创 小额批量支付系统(BEPS)的资金清算流程
例如,在一个清算周期内,A 银行发起的小额批量支付业务中,向其他银行的净支付金额为 100 万元,B 银行的净支付金额为 50 万元,C 银行的净收款金额为 80 万元。经过轧差清算,A 银行的清算账户被借记 100 万元,C 银行的清算账户被贷记 80 万元,B 银行因净支付 50 万元,其清算账户被借记 50 万元。
2024-08-12 08:43:00
773
原创 大额实时支付系统(HVPS)的资金清算流程
主动退回仍在排队的贷记支付业务、即时转账业务和单边业务,但错账冲正、同城清算系统轧差净额等不可退回,必须当日清算。
2024-08-12 08:39:24
924
原创 央行支付系统主要的资金清算方式
工作日期间5×21小时连续运行(大额支付系统运行时间为前一自然日20:30 - 当日17:15 ,运行工作日为国家法定工作日) ,特殊情况下可以根据央行的安排进行紧急清算等操作。:根据外币业务的特性和国际市场的时间等因素综合确定,通常在工作日的规定时间内进行主要清算处理等工作,同时也会根据特殊紧急情况等进行应急处理。:同小额批量支付系统一样基本是7×24小时运行(但实际中银行自身可能对一些业务时间有额外规定)。:实行7×24小时连续运行 ,为社会提供全天候的支付清算服务。
2024-08-12 08:34:21
893
原创 【笔记】ReactiveRedisTemplate压测-单机20万QPS-实践
笔记】ReactiveRedisTemplate压测-单机20万QPS-实践
2024-08-11 21:03:31
273
原创 log4j2配置基础介绍
将日志请求插入应用程序代码需要大量的规划和努力。观察表明,大约4%的代码用于日志记录。因此,即使是中等规模的应用程序,其代码中也会嵌入数千条日志语句。鉴于其数量众多,必须能够在无需手动修改的情况下管理这些日志语句。使用XML、JSON、YAML或属性文件格式的配置文件。通过编程方式创建和实现。通过调用接口中暴露的API将组件添加到默认配置中。通过调用内部Logger类的方法。所有可用格式在功能上是等效的。例如,可以使用属性格式重写XML格式的配置文件,反之亦然,而不会损失任何功能。
2024-08-10 11:09:18
1120
原创 log4j2的RollingFileAppender
RollingFileAppender 是一种可以根据特定条件滚动生成新日志文件的输出源,它能够有效地管理日志文件,避免单个文件过大,并提供了灵活的文件命名和存储策略。TimeBasedTriggeringPolicy(基于时间的触发策略)SizeBasedTriggeringPolicy(基于大小的触发策略)来格式化日志事件,并且配置了基于时间的触发策略。)创建一个新的日志文件,文件命名模式为。的文件,并在每天(根据日期格式。被配置为将日志写入名为。灵活的文件命名和存储。
2024-08-10 10:11:55
1367
原创 log4j2的Appender基础介绍
功能:接受对其他 Appender 的引用,并在单独的线程上异步地将日志事件写入这些 Appender。注意,在写入这些 Appender 时发生的异常将对应用程序隐藏。配置参数:要异步调用的 Appender 的名称,可以配置多个。blocking:如果为true,当队列已满时,Appender 将等待直到有空闲位置。如果为false,当队列已满时,事件将被写入错误 Appender(如果配置了)。默认是true。
2024-08-10 09:53:51
1335
原创 Log4j2中RollingFile的文件滚动更新机制
RollingFileAppender是Log4j2中的一种能够实现日志文件滚动更新(rollover)的Appender。rollover的意思是当满足一定条件(如文件达到了指定的大小,达到了指定的时间)后,就重命名原日志文件进行归档,并生成新的日志文件用于log写入。如果还设置了一定时间内允许归档的日志文件的最大数量,将对过旧的日志文件进行删除操作。RollingFile实现日志文件滚动更新,依赖于TriggeringPolicy和RolloverStrategy。
2024-08-10 08:48:10
1770
原创 操作系统内核-TCP-调优实战-三次握手-宕机场景模拟演示
本文模拟三种宕机场景,分别演示实际测试效果和TCP调优实践。场景1:进程宕机,场景2:局域网操作系统宕机,场景3:广域网操作系统宕机,场景4:广域网操作系统宕机-调优化。
2024-07-28 17:02:47
356
原创 1 企业架构资产的价值
企业架构资产并不是一套静态的固定资产,它是一个企业的“孪生”,它用结构化的方式最大程度还原出一个企业本该有的样子,从规划的秒级反馈,到落地的秒级更新。最大限度让规划、变更和落地变得紧密。秒级的架构资产更新,让这“企业孪生”变为可能。免责声明:本文内容仅表明作者本人观点,并不代表Thoughtworks的立场。
2024-07-23 16:05:21
1539
原创 Netty中ChannelHandler的生命周期
首先我们先分析小网络连接的生命周期,连接建立 ---> 数据交互 ---> 连接断开,在数据交互阶段,包括从连接中读取数据和向连接中写入数据。知道了连接的生命周期,就可以按图索骥的在各个阶段进行想要的操作。而在Netty中,网络连接的不同生命周期都可以通过回调的方式来绑定相应的逻辑,这个回调接口就是。在使用Netty进行网络编程的时候,通常需要在网络连接的不同阶段进行相应的操作,比如在连接建立时,客户端向服务端发起认证,在接收到数据时对数据内容进行解析等等。那么,连接的不同阶段在netty中如何表示呢?
2024-07-21 11:06:11
539
原创 linux修改文件句柄数量
ulimit 命令身是分软限制和硬限制,加-H就是硬限制,加-S就是软限制。硬限制就是实际的限制,而软限制是警告限制,它只会给出警告。假如,我们设置进程打开的文件句柄数是1024 ,但是系统总线制才500,所以所有进程最多能打开文件句柄数量500。文件句柄限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024)其实上面的修改都是对一个进程打开的文件句柄数量的限制,我们还需要设置系统的总限制才可以。liunx中文件句柄有两种,一种是用户级的,一种是系统级的。
2024-07-21 09:53:16
1243
原创 在 Linux 中,如何确定 optmem_max 的最佳值?
大多数发行版都考虑到了普通用户,而大多数普通用户,即使使用 Linux/Unix 作为服务器,也没有一个服务器群,它们之间有光纤 channel ,或者不需要 GB 的 IPC 传输的服务器进程.我对内核进行了 grep,但我找不到将 optmem_max 的默认值设置为 20480 的痕迹,这是我们系统上的默认值。20KB 的缓冲区对于“大多数”来说已经足够大了,它最大限度地减少了默认情况下所需的内核内存,而且配置起来也很容易,如果需要的话可以这样做。此外,我真的不明白 optmem_max 是什么。
2024-07-21 09:35:50
830
原创 TransitiveThreadLocal线程间可传递的ThreadLocal实现
TransitiveThreadLocal可传递的ThreadLocal实现1. 通过一个全局ThreadLocal视图来缓存jvm所有线程的ThreadLocal2. 通过组合模式复用jdk底层能力,内部成员包含java.lang.InheritableThreadLocal可继承ThreadLocal对象,实现父子线程数据传递
2024-07-20 22:58:03
346
原创 SLF4J warning or error messages and their meanings
注意,诸如库或框架之类的嵌入式组件不应该声明对任何SLF4J提供程序的依赖,而应该只依赖SLF4J -api。以及slf4j-reload4j、slf4j-jdk14、slf4j-simple 2.0.0或更高版本之一。将slf4j-nop.jar、slf4j-simple.jar、slf4j-reload4j.jar、slf4j-jdk14.jar或logback-classic.jar等许多可用的提供程序中的一个(且只有一个)放在类路径上将解决这个问题。当在类路径上找不到SLF4J提供程序时报告。
2024-07-19 09:15:03
1151
原创 linux内核层丢包排查方法汇总
表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。
2024-07-18 00:48:04
1767
原创 Linux 性能调优之网络内核参数优化
因此,结果是 1,815,250 字节。硬件层,物理层将数据的01转换为电压和脉冲光传输给物理的传输介质,相互直连的设备通过MAC(Media Access Control,介质访问控制)实现传输。传输层即进行建立连接或者断开连接,在两个主机之间创建逻辑上的通信连接,确保数据是否到达,没到达重发,保证数据的可靠性,涉及到的协议包括 TCP,UDP,DCDC。数据的流向整体是一个出栈入栈的过程,用应用层开始,包装数据,化整为零,分段传输,然后到物理层为信号传输,这是进栈,到达目标IP,在通过。
2024-07-17 23:39:53
901
原创 Linux系统内核参数优化
在工作中,平常我们使用官方镜像安装的Linux系统(非自定制化的)系统内核考虑的是最通用的场景,通常设定都偏向稳定保守,比较典型的代表如红帽系列的RHEL、CentOS等。而在正式的生成环境使用中,服务器的CPU、内存等硬件配置都比较高,而安装系统时默认的系统内核参数设定并不符合用于支持高并发访问的业务服务器,因此我们需要根据实际的业务特性来对系统的默认内核参数设定加以优化,以便能充分发挥服务器的硬件计算处理能力,提高资源利用率的同时也给企业节省IT设备资源成本。
2024-07-17 22:53:57
245
原创 Why would “TCP Full Window” happen?
0我明白,“TCP Full Window”表示发送方发送的数据比多?但为什么会发生这种情况呢?发送方不应该只是能够发送?还是因为wireshark看到更多的数据在发送端排队?但是wireshark是怎么知道的呢?发送缓冲区?
2024-07-17 21:57:02
603
原创 Dubbo3-高并发-性能优化-实践-踩坑-生产环境慎用tri协议
由于本文测的是端到端的全过程响应延时,包含了发送延时、传输延迟、接收延迟、响应延迟等全过程延迟,所以用6502 Kbits 作为缓冲区的默认值配置即可。带宽时延积 = 带宽*时延 = 1.95 Gbits/sec * 3.18ms = 6502 Kbits。如果不进行调优,最大缓冲区只有 87380 字节。整体上限页数计算,按1024个连接计算。tcpdump出现 滑动窗口溢出的提示。客户端、服务端都是同一虚拟机规格。出现大量请求报错,程序卡死。
2024-07-17 19:34:41
750
原创 NETSTAT(8) Linux System Administrator‘s Manual
打印网络连接、路由表、接口统计、伪装连接和多播成员。
2024-07-17 08:30:37
838
原创 Linux带宽测试命令
在Linux系统中,我们经常需要测试网络的带宽,以便确定网络连接的稳定性和传输速度。本文将介绍一些常用的Linux带宽测试命令,包括如何使用这些命令来测试带宽以及解释结果。
2024-07-16 13:10:01
3903
原创 高性能网络编程7–tcp连接的内存使用
当服务器的并发TCP连接数以十万计时,我们就会对一个TCP连接在操作系统内核上消耗的内存多少感兴趣。socket编程方法提供了SO_SNDBUF、SO_RCVBUF这样的接口来设置连接的读写缓存,linux上还提供了以下系统级的配置来整体设置服务器上的TCP内存使用,但这些配置看名字却有些互相冲突、概念模糊的感觉,如下(sysctl -a命令可以查看这些配置):代码语言:javascript复制net.ipv4.tcp_rmem = 8192 87380 16777216 net.ipv4
2024-07-15 19:18:00
1089
原创 Linux内核 TCP/IP、Socket参数调优
它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,可用来控制Linux网络配置,由于/proc/sys/net目录内容的临时性,建议把TCPIP参数的修改添加到/etc/sysctl.conf文件, 然后保存文件,使用命令“/sbin/sysctl –p”使之立即生效。以上是TCP socket的读写缓冲区的设置,每一项里面都有三个值,第一个值是缓冲区最小值,中间值是缓冲区的默认值,最后一个是缓冲区的最大值,虽然缓冲区的值不受core缓冲区的值的限制,但是缓冲区的最大值仍旧受限于core的最大值。
2024-07-15 10:34:06
1535
The Reverse C10K Problem for Server-Side Mashups.pdf
2024-06-09
中国小微经营者调查2023年一季度报告暨2023年二季度中国小微经营者信心指数报告.pdf
2024-05-05
60-Linux-Bash-Terminal-Keyboard-Shortcuts-1.pdf
2024-01-07
Bash-Terminal-Keyboard-Shortcuts-for-Navigation.pdf
2024-01-07
Bash-Terminal-Keyboard-Shortcuts-for-Control-Process.pdf
2024-01-07
Bash-Terminal-Keyboard-Shortcuts-for-History.pdf
2024-01-07
Bash-Terminal-Keyboard-Shortcuts-for-Editing.pdf
2024-01-07
Bash-Terminal-Keyboard-Shortcuts-for-Information.pdf
2024-01-07
Java-concurrent-collections-concurrenthashmap-blockingqueue.pdf
2023-12-30
字符集与字符集编码详解
2014-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人