- 博客(731)
- 资源 (1)
- 收藏
- 关注
原创 ActiveMQ主从和负载均衡
这种方式的集群,Slave的个数没有限制,哪个ActiveMQ实例先获取共享文件的锁,那个实例就是Master,其它的ActiveMQ实例就是Slave,当当前的Master失效,其它的Slave就会去竞争共享文件锁,谁竞争到了谁就是Master。需要两个Broker,一个作为Master,另一个作为Slave,运行时,Slave通过网络实时从Master处复制数据,同时,如果Slave和Master失去连接,Slave就会自动升级为Master,继续为客户端提供消息服务,这种方式的Slave只能有一个。
2025-05-20 09:15:00
187
原创 ActiveMQ配置网络连接与持久化存储
当应用到Broker的集群时,Borker与Broker的通信就用到了网络连接。它是一种基于文件存储的消息数据库并且不依赖第三方数据库。KahaDB 消息存储—提供容量的提升和恢复能力。Memory 消息存储—基于内容的消息存储。JDBC 消息存储—消息基于JDBC存储。它是一种新的消息存储机制,配置如下。AMQ消息存储—默认的消息存储。
2025-05-19 09:00:00
84
原创 ActiveMQ配置传输连接
ActiveMQ提供了广泛的连接模式,包括HTTP/S、JGroups、JXTA、muticast、SSL、TCP、UDP、XMPP等。提供了如此多的连接模式表明了ActiveMQ具有较高的灵活性。生产者和消费着可以使用不同的传输协议来传输信息。比如生产者用nio协议生产消息,消费者用tcp协议接收消息。
2025-05-18 09:15:00
69
原创 什么情况下使用ActiveMQ
采用这种模式对于处理大量的ActiveMQ消息是可行的,但是,我们往往需要减轻网络拓扑的复杂性,这样直接将消息投递到远程接收者的ActiveMQ是不可行的。在后一种情况下,不同的协议使用可以使ActiveMQ更轻松的传递消息。在这种场景下,每一个应用程序都会实例化一个ActiveMQ(无论是嵌入式的还是独立式的),应用程序从其本地的ActiveMQ发送和接收消息。只要是两个应用程序间需要通信的情况,都可以考虑使用JMS,不论这种通信是在本地的(就是通信的两个应用程序在同一台主机上),还是分布在不同机器上。
2025-05-17 10:00:00
123
原创 为什么使用ActiveMQ
ActiveMQ作为消息的中间件,允许复杂的多语言应用程序以一种一步的方式集成和交互。所以说,ActiveMQ是一种好的,提供松散耦合的,能够为多语言交叉应用提供集成的中间件。其次,由于调用者必须阻塞式的等待被调用者返回,如果被调用者处理过程复杂,将会严重影响调用者的执行效率和资源使用率。首先,这种架构将会造成系统维护管理上的巨大消费,因为,即使是很小的改动,很可能会波及到整个系统。许多系统架构使用RPC,并且获得了巨大的成功,但是,紧耦合的架构有着天生的缺陷。如果调用失败,整个架构即失败。
2025-05-16 10:00:00
271
原创 什么是ActiveMQ
ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ实现了JMS标准并提供了很多附加的特性。这些附加的特性包括,JMX管理(java Management Extensions,即java管理扩展),
2025-05-15 10:30:00
338
原创 activemq 部署及配置的一些小经验
将property name为authenticate的属性value="false" 改为"true",ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到。用户名 : 密码 ,角色名。主机名称不能带 下划线。
2025-05-14 09:30:00
114
原创 HAProxy作为负载均衡器,配置activeMQ集群
准备4台服务器,三台服务器安装activeMQ, 一台服务器安装HAProxy作为负载均衡。
2025-05-13 09:00:00
192
原创 Linux Kernel网络参数调优(三)
default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的net.core.wmem_default 值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win=0默认值情况下,TCP窗口大小为65535。#max:用于TCP socket接收缓冲的内存最大值。#min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下tcp socket都至少会有这么多数量的内存用于接收缓冲,默认值为8K。
2025-05-12 09:30:00
225
原创 Linux Kernel网络参数调优(二)
net.core.rmem_max = 16777216 //最大socket读buffer,可参考的优化值:873200。//记录的那些尚未收到客户端确认信息的连接请求的最大值。//web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,//每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。//为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。
2025-05-11 09:30:00
207
原创 Linux Kernel网络参数调优(一)
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到 65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。// timewait的数量,默认是180000。
2025-05-10 09:30:00
181
原创 /etc/sysctl.conf 中加入的配置
开启TCP滑动窗口以便程序可以使用TCP数据包扩展位来增大滑动窗口的大小,提高网络性能。# 开启SYN Cookie,以便更好的应付SYN洪水之类过多连接请求的情况。# 下面四项增大TCP发送和接收缓冲区,以便网络程序更快的处理网络数据。sysctl -q 可以用来查询某个具体kernel选项的当前值!不缓存ssthresh连接。
2025-05-09 09:30:00
172
原创 和socket相关的参数
socket缓存参数net.ipv4.tcp_rmem和net.ipv4.tcp_wmem。他们分别是读写缓存限制。他们都对应到每个socket缓存的字节数。设置一个宽松的最大值来减少每个socket链接所带来的内存开销。内核允许999,999个文件描述,每个socket可以用到最低和默认的4096字节、最高16MB的缓存。修改文件/etc/security/limits.conf允许所有用户打开999,999个文件描述。通过在客户端和服务端增加临时端口的数量,我们可以获得每个客户端64,000个链接。
2025-05-08 09:30:00
184
原创 vmstat 命令
物理可用内存 free 基本没什么显著变化,swapd 逐步增加,说明最小可用的内存始终保持在 256MB X 10% = 2.56MB 左右,当脏页达到10%的时候(vm.dirty_background_ratio = 10)就开始大量使用 swap;根据上面讲的 kswapd 扫描时检查的三件事,如果页面被修改了,但不是被文件系统修改的,把页面写到 swap,所以这里 swapd 持续增加。so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;
2025-05-07 09:45:00
356
原创 smem ,pmap 小工具
比如打开一个文件,文件被导入到内存里,对文件做了修改后并保存后,内核并不马上保存文件到硬盘,由 pdflush 决定什么时候把相应页面写入硬盘,这由一个内核参数 vm.dirty_background_ratio 来控制,比如下面的参数显示脏页面(dirty pages)达到所有内存页面10%的时候开始写入硬盘。Linux 内核读写虚拟内存是以 “页” 为单位操作的,把内存转移到硬盘交换空间(SWAP)和从交换空间读取到内存的时候都是按页来读写的。2)如果页面被文件系统修改,把页面内容写到磁盘上;
2025-05-06 09:01:56
266
原创 linux 配置用户禁止执行的命令
用户dev可以无密码执行所有命令,但禁止执行一系列高危命令(如切换用户、修改密码、编辑 sudoers 文件、修改 SSH 配置、给关键目录设置全权限、删除系统关键目录等),以保障系统安全。
2025-05-06 08:45:00
690
原创 内核关于内存的选项都在/proc/sys/vm目录下
swappiness表示使用swap分区的使用程度,可以适当调整swappiness=0的时候表示尽可能使用物理内存swap空间.swappiness=100积极使用swap.这个值是一个阀值,说明如果内存中的脏数据达到系统总内存的10%时,那么pdflush进程就会启动,将内存中的脏数据写回硬盘.这个值可适当调高.可获得更快的写入速度.dirty_ratio的值是数据写进内存的阀值,40%是指当系统内存已经缓存了40%的数据以后,就不再往内存中缓存数据了.
2025-05-04 09:00:00
144
原创 linux 内核关于内存的选项
规整策略分为直接规整、被动规整、预应性规整和主动规整,触发时机和强度不同。通过使用大页减少页表开销,提高内存访问效率。启用内存错误检测和处理机制,默认开启。接口进行内存规整,减少内存碎片。或修改 GRUB 配置永久关闭。:系统范围最大共享内存段数。:最大共享内存段大小。
2025-05-03 10:00:00
583
原创 open files 打开文件数
可以用ulimit -n 来临时增大该限制值,但是一旦重启服务器后,该值又会恢复到1024。只能暂时性的解决问题。linux默认的打开文件数量是1024,我们可以用ulimit -a 来查看系统资源。一般情况下,我们都会通过修改系统限制文件来彻底增大open files的值。增大打开文件最大句柄限制数,该数是1024的整数倍。该语句表示:每一个用户的默认打开文件数是65536。1.临时增大open files的限制值。2.彻底增大open files的限制值。
2025-05-02 11:00:00
461
原创 Perf是内置于Linux内核源码树中的性能剖析(profiling)工具
它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析常用于性能瓶颈的查找与热点代码的定位CPU周期(cpu-cycles)是默认的性能事件,所谓的CPU周期是指CPU所能识别的最小时间单元,通常为亿分之几秒,是CPU执行最简单的指令时所需要的时间,例如读取寄存器中的内容,也叫做clock tickPerf是一个包含22种子工具的工具集,以下是最常用的5种:perf-listperf-statperf-top。
2025-05-01 08:45:00
238
原创 使用strace、pstack进行程序分析
由最初server端响应慢现象,到使用strace跟踪出具体耗时的系统调用,再到使用pstack查到程序中具体的耗时函数,一步步找到了影响程序运行时间的程序代码。从以上信息可以看出,函数调用关系为:main->ha_ha->sleep,因而我们可以找到ha_ha函数进行分析和优化修改。可以看到server接收数据之后(对应recvfrom调用),经过1s左右时间将消息发出(对应sendto调用)strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用耗时。strace查看系统调用。
2025-04-30 08:45:00
259
原创 smem介绍
smem这个工具可以提供Linux系统上内存耗用情况方面的众多报告smem可以报告实际使用的物理内存(PSS),这是一种更有意义的指标,可以衡量虚拟内存系统中的库和应用程序所占用的内存数量实际使用物理内存(RSS)的这个标准的内存耗用衡量指标会大大高估内存耗用情况非共享内存被报告为进程独自占用的物理内存(USS)
2025-04-29 10:00:00
367
原创 smem 命令介绍和使用
smem 命令介绍和使用smem是一个 Linux 下的命令行工具,用于报告系统中各个进程的内存使用情况,特别是它能更准确地计算共享内存的使用量,相比传统工具(如pstop)更能反映进程真实的内存占用。
2025-04-28 09:00:00
361
原创 影响 Linux 系统的内存管理、缓存行为、交换策略和性能表现
值越大,交换时一次写入或读取的页面越多,减少交换次数,但可能导致交换大量不必要的页面。值越大,内核越倾向于回收 inode/dentry 缓存,释放内存给其他用途。该值越大,系统保留的空闲内存越多,减少内存耗尽风险,但可用内存减少。:控制内核在交换(swap)时一次性交换的页面数,单位是页面数。(默认):启用启发式算法,内核估算剩余内存,决定是否允许分配。值越小,内核更倾向于保留这些缓存,提高文件系统访问性能。:系统保留的最小空闲内存(单位 KB),防止内存耗尽。
2025-04-27 09:00:00
300
原创 wappiness值的大小对如何使用swap分区配置
Swappiness 是 Linux 内核中的一个参数,用于控制系统使用 swap 分区(或 swap 文件)的积极程度,即内核将内存中的页面换出到 swap 空间的倾向。
2025-04-26 10:00:00
280
原创 Linux 内核对脏数据的缓存和写回策略
当设置为非零值时,内核会记录所有磁盘的读写操作以及脏数据写回(dirtying)事件,方便调试磁盘活动,特别是分析磁盘何时被唤醒(如笔记本节能场景)。:当脏数据达到该比例时,产生写操作的进程会被阻塞,必须等待部分脏数据写回磁盘后才能继续写入,防止脏数据无限制增长。:内核周期性地唤醒写回线程检查脏数据是否需要写入磁盘,时间间隔越短,写回越频繁,写入压力越均匀。:脏数据在内存中驻留超过该时间后,后台写回线程会优先将这些“旧”的脏数据写入磁盘。)开始异步将脏数据写入磁盘,防止脏数据积累过多。
2025-04-25 10:00:00
320
原创 手机网络不稳定可能导致数据包乱跳
不同真实客户端通过NAT转换后,后端服务器看到的都是同一个源IP(LVS IP),但不同客户端的TCP时间戳可能不连续或乱序。后端服务器看到的所有请求源IP都是LVS的IP(而非真实客户端IP),不同客户端的请求被映射成相同的源IP,但端口不同。LVS FULLNAT模式下,客户端请求经过LVS时,LVS会修改数据包的源IP和目标IP地址,进行全地址转换。由于TCP PAWS(保护避免序列号回绕)机制,服务器会丢弃时间戳小于已记录时间戳的数据包,认为它们是旧包。会导致大量连接被误判丢弃,严重影响访问。
2025-04-24 11:00:00
355
原创 Linux系统中server端如何快速回收链接
tcp是可靠的传输协议,因此链接的关闭也需要4次握手当server端发现client端很久没有心跳,那我就得将该链接回收由于Client端已经不可达,那server端链接会处在FIN-WAIT-1。这个时候该tcp链接已经是一个孤儿链接,也就是说它已经不属于任何一个进程。在不可达的情况下,它会默认发送9次,重试8次。由于该状态是非常占用资源的最大可占用64KB。
2025-04-23 08:45:00
348
原创 要支持50W的长连接,TCP栈对内存的使用需要多少
要支持50万(50W)个TCP长连接,TCP栈对内存的使用主要取决于每个连接占用的内核内存,包括TCP控制块(tcp_sock)、读写缓存(socket buffer)等。
2025-04-22 08:45:00
417
原创 tcp 优化的参数介绍(一)
SYN Cookie用于防止SYN Flood攻击,通过在SYN-ACK包中包含一个Cookie,避免需要存储SYN请求的信息,从而减少服务器资源占用。如果套接字由本端发起关闭,则该参数决定了它保持在FIN-WAIT-2状态的时间。这种机制使用TCP时间戳来快速回收TIME_WAIT状态的连接,减少TIME_WAIT连接数量。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
2025-04-21 09:00:00
184
原创 ulimit 调优的方法和策略
公司服务器需要调整 ulimit的stack size 参数调整为unlimited 无限,使用ulimit -s unlimited时只能在当时的shell见效,重开一个shell就失效了。于是得在/etc/profile 的最后面添加ulimit -s unlimited 就可以了,source /etc/profile使修改文件生效。对于需要做许多 socket 连接并使它们处于打开状态的Java 应用程序而言,最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
2025-04-20 09:15:00
1350
原创 ss -lnt
Recv-Q:当前全连接队列的大小,也就是当前已完成三次握手并等待服务端 accept() 的 TCP 连接个数;Send-Q:当前全连接最大队列长度,上面的输出结果说明监听 8088 端口的 TCP 服务进程,最大全连接长度为 128;Recv-Q:已收到但未被应用进程读取的字节数;Send-Q:已发送但未收到确认的字节数;
2025-04-19 10:00:00
303
原创 Linux 性能优化图谱有哪些方案,方法,工具和技术
通过这些方案、方法、工具和技术,可以有效地优化Linux系统的性能,提高系统的响应速度和资源利用率。:根据存储设备类型(SSD或HDD)选择合适的I/O调度器。:使用I/O多路复用技术减少网络请求次数。:清除未使用的缓存,调整内核缓冲行为。:使用长连接和DNS缓存减少网络延迟。:启用TRIM功能以优化SSD性能。禁用不必要的服务以加快系统启动速度。:选择合适的文件系统(如。
2025-04-18 10:00:00
374
原创 liunx time_wait状态过多的情况
Linux系统中出现大量TIME_WAIT状态的连接通常是由于TCP连接关闭后,系统需要等待一段时间(通常为2倍的最大报文段寿命,约为2分钟)以确保延迟到达的数据包不会干扰后续的新连接。这种情况在高并发短连接的场景下尤其常见,因为每个连接在关闭后都会进入TIME_WAIT状态。
2025-04-16 09:15:00
795
原创 Linux 的 core 文件
echo “/corefile/core-%e-%p-%t” > core_pattern ,这样可以将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳。
2025-04-14 10:00:00
346
原创 linux 中文乱码
export LANG="en_US.UTF-8" # 设置为英文,# export LANG="zh_CN.UTF-8" # 设置为中文。第二种方法 永久生效 ,编辑 /etc/sysconfig/i18n。## 永久生效, 编辑/etc/sysconfig/i18n。#编辑 /etc/profile配置文件,添加如下一行。#export LANG=C # 设置英文。1、用locale 查看命令。## 查看当前的字符集。第一种方法:临时生效。#重启linux系统。
2025-04-13 09:15:00
126
image-svnadmin-2.5.3.tgz 正在使用ing,方便简单使用,运维好工具
2024-11-25
c8.yum.tgz CentOS-Ceph-Quincy.repo
2024-11-19
Dockerfile pip2pi
2024-11-13
kubekey-v3.0.7-linux-amd64.tar.gz
2024-11-07
nerdctl-1.4.0-linux-amd64.tar.gz
2024-11-07
cni-plugins-linux-amd64-v1.1.1.tgz
2024-11-07
buildkit-v0.11.6.linux-amd64.tar.gz kubekey-kubesphere 部署中需要用到的
2024-11-07
dcgm-monitor.tar.gz
2024-10-11
tx-gpushare.zip 腾讯云的GPU分隔资源插件
2024-10-10
构建Nginx 代理的dockerfile 镜像文件
2024-09-14
ngx-pxy 代理转发镜像
2024-09-14
nginx代理转发配置,配置内网到外网访问
2024-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人