- 博客(16)
- 收藏
- 关注
原创 关于打开文件数查询的问题
这个问题之前困扰了许久,在网上查询了需求也没找到原因,后来在公司博客上看到大佬写的文章,记录在册,以后可用优化后的命令查看打开文件数量。当然也可以直接通过 cat /proc/pid/maps | wc -l 查看进程打开的文件句柄 关于以下两个命令查询出来结果不一样分析 lsof -n | awk ‘{print $2}’ | sort | uniq -c | sort -nr | more lsof -p PID | wc -l 原因分析 1: lsof 的输出会产生一个 header,这一.
2022-05-10 19:42:58
549
原创 优化篇: kafka
kafka是一款消息中间件。作用是********* 这里主要说一下kafka的一些参数,本人在生产上遇到过很多kakfa的问题,如参数设置不当造成的内存溢出,占用的句柄数过高等。这里简单介绍几个参数 cpu与内存 CPU 一般不会是 Kafka 集群的瓶颈。常见的服务器 CPU 都没有问题。 kafka对磁盘与内存的操作是很多的,磁盘一般都是顺序读写,用到了页缓存技术(cache page),kafka的.index和.timeIndex文件会映射到mmap中,我的理解就是页缓存里面,所以kafka.
2022-04-21 20:21:05
3531
原创 优化篇: zookeeper
zookeeper作用: 主从,选举,配置中心,数据监听…简单来说就是一个存储数据的地方,每个数据变更,能通知到对应的监听者。 zookeeper部署上 内存 一般4g 就够(视zk的DataTree来)。磁盘由于 Zookeeper 的数据写入磁盘(由于事务性),建议使用 SSD。 操作系统上(一般关闭交换区) Zookeeper 的性能会很明显受到交换分区的影响。建议部署 Zookeeper 的服务器关闭交换分区功能或是通过内核参数调整,减少对于交换分区的使用。 不建议 Zookeeper 和.
2022-04-21 20:04:41
2863
原创 优化篇: nginx长连接优化
NGINX长连接优化 关于长连接 对于性能没有要求时,使用默认配置即可。但是定位到nginx存在瓶颈,则需要对nginx配置进行修改。nginx采用的是多进程模型。 长连接一般涉及到两个方面 前端应用链接到nginx是否长连接 nginx转发到后端请求是否长连接 events模块优化 events{ worker_connections 65535; use_epoll; multi_accept on; } http模块优化 http{ #… keepalive_requests 65535
2022-04-05 11:25:07
2241
原创 优化篇: 主机内核优化
主机内核优化 操作系统初始化或者压测时需要进行参数的修改,以下是各类文档与线上经验的参数总结。如有问题,请指出 系统优化参数比如长连接配置,ipv4优化。 Linux 最大文件限制数 ulimit 1)修改当前交互终端的limit值。查询当前终端的文件句柄数: ulimit -n 回车,一般的系统默认的1024。修改文件句柄数为65535,ulimit -n 65535。此时系统的文件句柄数为65535。 2)将ulimit 值添加到/etc/profile文件中(适用于有root权限登录的系统) 为
2022-03-25 17:05:45
225
原创 Java基础
Java基础 工作久了,很多知识点很难串起来,也是一看就忘。在工作中研发的技术组件或在开发过程与生产环境的问题,基本都是之前有了解或者看过类似的博客的,较为零散 。急迫需要整理自己的知识链路。Java基础篇,怎么说呢,就是概念比较多吧,但是在我们敲代码的过程中又一直存在,一份好的代码,免不了抽象,封装,继承等。基础篇,作为复习的指导篇吧。如果文章有问题的话,感谢指出。 面向对象的特征有哪些? 面向对象是一种思想,主要体现在代码开发模块化易于维护修改、复用性强,代码可读性和灵活性高。 5大原则: 单一职
2021-06-26 14:04:15
292
原创 关于Java的Type接口
Java的Type接口 Class 表示原始类型,其对象表示JVM中的一个类和接口。 ParameterizedType 表示多参数化类型如List<String> Map<Integer,String>、Service<User> 带有泛型的。 1. Type getRawType() -- 返回参数化类型的原始类型,例如List<S...
2020-04-29 16:02:49
444
原创 nginx配置篇
1、nginx目录结构 1.*_temp目录:共有5个temp结尾的目录,用于存放Nginx运行时产生的临时文件。 2.conf目录:存放配置文件的目录,包含主配置文件nginx.conf,是我们经常修改的配置文件。 3.html目录:默认存放了Nginx的错误页面和欢迎页面等。 4.logs目录:默认存放了访问日志和错误日志文件。 5.sbin目录:默认存放了Nginx的二进制命令,常用于Ngi...
2020-02-04 20:24:11
618
转载 BTree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。 二叉查找树 二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根...
2020-01-05 12:00:05
195
原创 Java故障工具与常用排错命令
一、Java虚拟机管理常用命令 jps 显示指定系统内所有的虚拟机进程 jstat 收集虚拟机各方面的运行数据 jinfo 显示虚拟机配置信息 jmap 虚拟机内存转储快照(dump文件) jhat 用于分析dump文件,会建立一个HTTP/HTML服务器,可再浏览器查看 jstack 显示虚拟机的线程快照· jps jps可以通过RMI协议查询开启了RMI...
2019-03-23 22:44:27
620
原创 几种常见的OOM
测试类 配置VM optionals 参数 -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 堆溢出 public class HeapOOM { public static void main(String[] args) { List&amp;lt;OOMObject&amp;...
2019-01-02 21:55:36
2862
1
原创 Java的内存区域
Java的内存区域 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程锁执行的字节码的行号指示器。 字节码解释器工作时就是通过改变这个计数器的值来选取吓一跳需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。 多线程是通过线程轮流切换并分配处理器执行时间的方式实现的。任意时刻一个处理器只能执行一条线程。如果一个线程正在执行一个Java方法,...
2019-01-02 18:41:51
189
原创 freemarker生成word
生成通用的报告模板 一、先制作ftl文件(一定要用word,wps生成会有问题) 1、先在新建的word中写入模板 先在新建的word中写入模板 另存为xml文件 将xml文件更名为ftl文件 更改ftl文件中的内容 全局搜索,将变量替换,图片是base64形式的。 我们设定了三个变量,title,content,image64 二、将ftl文件转成word文件 将ftl文件放在src的c...
2018-12-29 20:55:37
345
原创 微信支付的两种模式
微信支付的两种模式 微信支付分为两种,一种是普通商户模式,一种是服务商模式 一、普通商户模式(支付的钱到一个账户上) 关于公众号支付、APP支付或H5支付,参数都差不多(有差异,有些是全小写,有些是驼峰)。 建议从微信文档上直接复制参数 到微信商户平台上开通相对应的支付权限,并拿到对应的参数 微信商户平台文档 这里以公众号支付为例,直接上代码 private WechatPayResponseDt...
2018-12-17 14:54:51
4180
原创 记一次生产环境MySQL删库经历
记一次生产环境MySQL删库经历 虽然是在几个月前发生的事情,但是还是记忆尤新,分享心得,引以为戒。 heidisql工具在备份RDS的时候正常来说是不会有问题的,但是在当时在执行此操作的时候发生了问题,在进行sql备份的时候从生产的RDS导入到另外一个RDS上,出现了权限错误,导致生产的数据库表被删除。在我们自己的数据库导来导去都不会出现问题。后面也做了测试,如果使用高权限账号是没有问题的(坑...
2018-12-15 21:43:44
851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅