利用split分割文件或者二进制文件
前言 当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。 1. 分割文件文件分割可以使用split命令,该即支持文本文件分割,又支持二进制文件分割;而合并文件可以使用cat命令。 1.1 文本文件分割分割文本文件时,可以按文件大小分割,也可以按文本行数分割。 按文件大小分割 按文件大小分割文件时,需要以-C参数指定分割后的文件大小: 1$ split -C 100M large_file.txt stxt 如上所示,我们将大文件large_file.txt按100M大小进行分割,并指定了分割后文件前缀stxt;当不指定前缀时,split会自动对分割文件进行命名,一般会以x开头。 按行分割 文本文件还可以以行为单位进行分割,以行数进行分割时会忽略文件大小,并以-l参数指定分割后文件的行数: 1$ split -l 1000 large_file.txt stxt 1.2 二进制文件分割二进制文件分割类似于按大小分割文本文件,不同的是以-b参...
整理使用nginx时碰到的问题
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)解决办法:在nginx中的对应的反向代理配置如下内容,即可解决: 1234proxy_buffer_size 1024k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 16 1024k; #proxy_buffers缓冲区,网页平均在32k以下的设置proxy_busy_buffers_size 2048k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 2048k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 错误原因分析:1.nginx配置缓存区设置过小2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件3.磁盘空间不足 经过验证是第一种原因(nginx配置缓冲区设置过小) 问:nginx的缓冲区作用是什么? 答:如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就直接发到客户端,十分浪费性能。有了缓冲区...
生产RabbitMQ队列阻塞处理
现象 RabbitMQ的管控台有几万条消息处于ready状态,还有几百条unacked的消息。 队列阻塞-分析原因 consumer消费处理错误消息失败后没有正常进行ack, 正常的消息也不再被消费, 随即导致队里阻塞 但为什么正常消息也没有被正常消费呢? 其实这是RabbitMQ的一种保护机制。防止当消息激增的时候,海量的消息进入consumer而引发consumer宕机。 RabbitMQ提供了一种QOS(服务质量保证)功能,即在非自动确认的消息的前提下,限制信道上的消费者所能保持的最大未确认的数量。可以通过设置PrefetchCount实现。 举例说明:可以理解为在consumer前面加了一个缓冲容器,容器能容纳最大的消息数量就是PrefetchCount。如果容器没有满RabbitMQ就会将消息投递到容器内,如果满了就不投递了。当consumer对消息进行ack以后就会将此消息移除,从而放入新的消息。 12345678910listener: simple: # 消费端最小并发数 concurrency: 1 # 消费端最大并发数 m...
sentinel结合项目的使用
面对互联网的高并发过载流量,为了保证系统的稳定性,我们一般会对过载流量进行限流。 1、什么是 sentinel:在基于 SpringCloud 构建的微服务体系中,服务间的调用链路会随着系统的演进变得越来越长,这无疑会增加了整个系统的不可靠因素。 在并发流量比较高的情况下,由于网络调用之间存在一定的超时时间,链路中的某个服务出现宕机都会大大增加整个调用链路的响应时间,而瞬间的流量洪峰则会导致这条链路上所有服务的可用线程资源被打满,从而造成整体服务的不可用,这也就是我们常说的 “雪崩效应”。 而在微服务系统设计的过程中,为了应对这样的糟糕情况,最常用的手段就是进行 ”流量控制“ 以及对网络服务的调用实现“熔断降级”。因此,Sentinel 就应运而生了。 Sentinel 是一款面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来保障服务的稳定性,核心思想是:根据对应资源配置的规则来为资源执行相应的流控/降级/系统保护策略,Sentinel 的主要特性如下图: 2、主流限流熔断组件对比: 从三者的...
Kafka-Eagle监控&Kraft模式
Kafka-Eagle监控Kafka-Eagle框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。 在此之前监控工具需要MySQL作为持久化手段。 一、Kafka环境准备1、关闭 Kafka 集群12# 停止集群kf.sh stop 2、修改/opt/module/kafka/bin/kafka-server-start.sh1vim bin/kafka-server-start.sh 修改如下参数值: 123if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"fi 为 12345if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX...
关于nginx中proxy_set_header Host的设置
转自: https://blog.csdn.net/weixin_41585557/article/details/82426784 背景: nginx上配有aaa.example.com的虚拟主机,现在需要将访问http://aaa.example.com/api/x.x/client/的请求转到http://bbb.example.com/api/x.x/client/,bbb.example.com的虚拟主机在另外一台nginx上,其中x.x表示位数不定的版本号,如:1.0或1.20.345都可能。请求转过去要求url保持不变 用rewrite转发的话,url会发生变化的,那就用proxy_pass吧,于是添加了如下的配置: 123location ~ ^/api/([0-9]+)(\.[0-9]+)*/client/ { proxy_pass http://bbb.example.com;} 在现有环境的nginx里添加这段配置之后,访问却始终转不过去,查看nginx日志也只能看到是404信息,并没有更多定位问题的信息。检查了许久也没找到...
利用pprof分析filebeat的cpu使用率过高
通过pprof调试filebeat因为filebeat是用go语言实现的,而go语言本身的基础库里面就包含pprof这个功能极其强大的性能分析工具,因此,在7.x版本中,beats家族的工具,都提供了以下参数,方便用户在出现问题的时候,对应用进行调试 12345678--cpuprofile FILEWrites CPU profile data to the specified file. This option is useful for troubleshooting Filebeat.-h, --helpShows help for the run command.--httpprof [HOST]:PORTStarts an http server for profiling. This option is useful for troubleshooting and profiling Filebeat.--memprofile FILEWrites memory profile data to the specified output file. This opti...
因inodes占用资源过多导致no space left on device的问题
摘自:https://blog.csdn.net/weixin_34383474/article/details/121493708 问题现象使用gitlab runner的打包机器执行命令打包docker镜像时报 "no space left on device" 的错误,无法正确打包。 问题排查步骤 登录打包机查看机器剩余磁盘容量,得到结果物理机磁盘仍有剩余空间。 1df -h 通过复制文件证明磁盘空间确有剩余,但是在物理机上直接执行docker命令依然存在no space left on device空间不足的报错 通过搜索找到原因服务机inodes使用过高,执行指令得到结果inodes占用100%,原因为docker打包过程中小文件生成过多导致inodes占用过高 inode是什么 inode是文件系统中的一个数据结构,用于存储文件或目录的元数据信息,如文件大小、所属用户、所属组、权限、创建时间、修改时间等等。每个inode都有一个唯一的编号,称为inode号。 当文件或目录被创建时,会分配一个inode号和一定的磁盘空间存储文件内容。文件名与...
Python测试框架之unittest和pytest的区别
摘自:https://blog.csdn.net/zhusongziye/article/details/103963042 UnittestUnittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 示例 执行结果 注:unittest有一个关联模块unittest2,但unittest2仅适用于Python 2.4-2.6。这是由于从Python 2.7开始,unittest增加一些新的特性。为了在老的版本中支持这些特性,所以提供了unittest2这个库。但对于Python 2.7及之后的版本,unittest是唯一的。本次示例中使用的为python2.7。 PytestPytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩...
解决境内访问GitHub出现dns污染问题
本文旨在通过修改系统的hosts文件,来达到正常访问的目的 这里先给各位一个可以正常使用的github的ip地址,后面我们再说如何获取github ip地址的访问。这里,给各位提供的github的ip地址为:15.164.81.167。 linux 系统hosts文件修改方法ssh终端输入如下命令并回车: 1vi /etc/hosts 接着输入一个i键,进入插入模式。 添加如下代码: (windows系统修改C:Windows\System32\drivers\etc\hosts文件加入下面相同的内容即可) 1215.164.81.167 github.com15.164.81.167 www.github.com 摁下ESC键,退出插入模式。输入:wq保存并退出文件即可 接着终端输入ping github.com测试是否可以ping通即可。得到类似如下内容即可: 1234567[root@iZwz98biiph4vhee88vxj8Z ~]# ping github.comPING github.com (15.164.81.167) 56(84) byte...
