先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
②实际output时的线程数
默认配置 —> pipeline.output.workers: 1;
可优化为 —> pipeline.output.workers: 不超过pipeline线程数。
③每次发送的事件数
默认配置 —> pipeline.batch.size: 125;
可优化为 —> pipeline.batch.size: 1000。
④发送延时
默认配置 —> pipeline.batch.delay: 5;
可优化为 —> pipeline.batch.size: 10。
总结:
- 通过设置-w参数指定pipeline
worker数量,也可直接修改配置文件logstash.yml。这会提高filter和output的线程数,如果需要的话,将其设置为cpu核心数的几倍是安全的,线程在I/O上是空闲的。 - 默认每个输出在一个pipeline
worker线程上活动,可以在输出output中设置workers设置,不要将该值设置大于pipeline worker数。 - 还可以设置输出的batch_size数,例如ES输出与batch size一致。
- filter设置multiline后,pipline
worker会自动将为1,如果使用filebeat,建议在beat中就使用multiline,如果使用logstash作为shipper,建议在input中设置multiline,不要在filter中设置multiline。
Logstash中的JVM配置文件:
Logstash是一个基于Java开发的程序,需要运行在JVM中,可以通过配置jvm.options来针对JVM进行设定。比如内存的最大最小、垃圾清理机制等等。JVM的内存分配不能太大不能太小,太大会拖慢操作系统。太小导致无法启动。默认如下:
- Xms256m#最小使用内存;
- Xmx1g#最大使用内存。
4、引入Redis的相关问题
filebeat可以直接输入到logstash(indexer),但logstash没有存储功能,如果需要重启需要先停所有连入的beat,再停logstash,造成运维麻烦;另外如果logstash发生异常则会丢失数据;引入Redis作为数据缓冲池,当logstash异常停止后可以从Redis的客户端看到数据缓存在Redis中;
Redis可以使用list(最长支持4,294,967,295条)或发布订阅存储模式;
Redis做ELK缓冲队列的优化:
bind 0.0.0.0 #不要监听本地端口;
requirepass ilinux.io #加密码,为了安全运行;
只做队列,没必要持久存储,把所有持久化功能关掉:
- 快照(RDB文件)和追加式文件(AOF文件),性能更好;
- save “” 禁用快照;
- appendonly no 关闭RDB。
把内存的淘汰策略关掉,把内存空间最大
maxmemory 0 #maxmemory为0的时候表示我们对Redis的内存使用没有限制。
5、Elasticsearch节点优化配置
服务器硬件配置,OS参数:
1)/etc/sysctl.conf 配置
vim /etc/sysctl.conf
vm.swappiness = 1 #ES 推荐将此参数设置为 1,大幅降低 swap 分区的大小,强制最大程度的使用内存,注意,这里不要设置为 0, 这会很可能会造成 OOM
net.core.somaxconn = 65535 #定义了每个端口最大的监听队列的长度
vm.max_map_count= 262144 #限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。当VMA 的数量超过这个值,OOM
fs.file-max = 518144 #设置 Linux 内核分配的文件句柄的最大数量
sysctl -p #生效一下
2)limits.conf 配置
vim /etc/security/limits.conf
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
可能需重启后生效。
Elasticsearch中的JVM配置文件:
-Xms2g
-Xmx2g
- 将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等。
- Elasticsearch可用的堆越多,可用于缓存的内存就越多。但请注意,太多的堆可能会使您长时间垃圾收集暂停。
- 设置Xmx为不超过物理RAM的50%,以确保有足够的物理内存留给内核文件系统缓存。
- 不要设置Xmx为JVM用于压缩对象指针的临界值以上;确切的截止值有所不同,但接近32 GB。不要超过32G,如果空间大,多跑几个实例,不要让一个实例太大内存。
Elasticsearch配置文件优化参数
1)主配置文件
vim elasticsearch.yml
bootstrap.memory_lock: true #锁住内存,不使用swap
#缓存、线程等优化如下
bootstrap.mlockall: true
transport.tcp.compress: true
indices.fielddata.cache.size: 40%
indices.cache.filter.size: 30%
indices.cache.filter.terms.size: 1024mb
threadpool:
search:
type: cached
size: 100
queue_size: 2000
2)设置环境变量
vim /etc/profile.d/elasticsearch.sh
export ES_HE AP _SIZE=2g #Heap Size不超过物理内存的一半,且小于32G。
集群的优化(我未使用集群):
- ES是分布式存储,当设置同样的cluster.name后会自动发现并加入集群;
- 集群会自动选举一个master,当master宕机后重新选举;
- 为防止"脑裂",集群中个数最好为奇数个;
- 为有效管理节点,可关闭广播discovery. zen.ping.multicast.enabled: false,并设置单播节点组discovery.zen.ping.unicast.hosts: [“ip1”, “ip2”, “ip3”]。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-8ppu1YMJ-1713125228500)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!