BPF的简单学习

BPF的简单学习 前言 本来规划过年期间学习一下bpf相关的内容 但是因为自己没有坚持学习,所以到最后一天才开始整理. 本来想深入学习一下相关内容,但是已经感觉已经无法完成. 最近大半年进行了很多性能诊断分析的工作,很多时候感觉已经到达瓶颈. 感觉必须要深入到内核,深入到指令运行周期才可以有所提升.

[转帖]并发delete导致oracle死锁问题的解决

项目中有一个批处理任务,用来删除数据库中过期的数据(包括说话人的语音、模型、记录等),当程序被分布式部署后,就会有多个批处理线程同时进行删除,不过不同的线程,会根据元信息表得到不同的说话人信息,从而删除不同的数据,并不存在竞争的问题,但是,当项目使用oracle数据库在线上运行时,却频繁出现了ORA

ESXi规避ESXiArgs勒索软件的简单方法

摘要 今天查看深信服科技的公众号 发现有一个ESXiArgs 的勒索软件. 感觉对公司存在一定的风险.但是感觉操作手册有点简单. 这里想着写全面一点. 作为操作手册使用. 并且深信服仅是解决了在运行, 没有将服务设置为开机不启动. 不过感谢原作者提供的知识. 漏洞原理 攻击 slpd服务. 缓解的办

[转帖]Docker系列--Docker设置系统资源限制及验证

https://www.cnblogs.com/caijunchao/p/13415386.html 1、限制容器的资源 默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的尽可能多的给定资源。Docker提供了控制容器可以使用多少内存或CPU的方法,设置docker run命令的运行时配置

[转帖]JVM系列之:关于即时编译器的那些事

本文为《深入学习 JVM 系列》第十六篇文章 我们在前文学习 Java 是如何执行的这篇文章中有提及即时编译器,这是一项用来提升应用程序运行效率的技术。通常而言,代码会先被 Java 虚拟机解释执行,之后反复执行的热点代码则会被即时编译成为机器码,直接运行在底层硬件之上。 那么问题来了,既然在 Ho

[转帖]JVM参数:-XX:ReservedCodeCacheSize

通过笨神的分享整理笔记: 这个参数主要设置codecache的大小,比如我们jit编译的代码都是放在codecache里的,所以codecache如果满了的话,那带来的问题就是无法再jit编译了,而且还会去优化。因此大家可能碰到这样的问题:cpu一直高,然后发现是编译线程一直高(系统运行到一定时期)

[转帖]测试工具 sysbench (Centos 7.x) for DM数据库

1、简单介绍 sysbench是一个开源,模块化的多线程性能测试工具,可以用来进行硬件环境性能测试,也可进行数据库的性能测试。但是由于需要支持DM测试,所以我们一般使用源码进行编译。 2、运行方法 sysbench通过运行lua脚本进行数据库测试。而每次测试都分为prepare、run、cleanu

[转帖]测试工具 sysbench (Centos 7.x) for DM数据库

1、简单介绍 sysbench是一个开源,模块化的多线程性能测试工具,可以用来进行硬件环境性能测试,也可进行数据库的性能测试。但是由于需要支持DM测试,所以我们一般使用源码进行编译。 2、运行方法 sysbench通过运行lua脚本进行数据库测试。而每次测试都分为prepare、run、cleanu

[转帖]协程切换和线程切换

先说结论:协程切换比线程切换快主要有两点: (1)协程切换完全在用户空间进行,线程切换涉及特权模式切换,需要在内核空间完成;(2)协程切换相比线程切换做的事情更少。 协程切换只涉及基本的CPU上下文切换,所谓的 CPU 上下文,就是一堆寄存器,里面保存了 CPU运行任务所需要的信息:从哪里开始运行(

[转帖]linux性能检测之sar详解

http://blog.51niux.com/?id=99 sar也是sysstat中的一员。 一、介绍 1.1 简介 sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。 sar可以显示CPU、运行队列、磁盘I/O、分页(交

[转帖]jcmd命令详解

1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具。 jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计、JFR、内存使用、垃圾收集、线程堆栈、JVM 运行时间,也可以手动执行 GC、导出(TODO 能导出线程信息?)线程

[转帖]【JVM】字节码执行引擎

引入 class文件就是字节码文件,是由虚拟机执行的文件。也就是java语言和C & C++语言的区别就是,整个编译执行过程多了一个虚拟机这一步。这个在 类文件结构 中已经解释。上一节讲了虚拟机是如何加载一个class的,这一节就讲解虚拟机是如何执行class文件的。 运行时栈帧结构 1.定义 栈是

[转帖]一次fork引发的惨案!

https://www.cnblogs.com/xuanyuan/p/15502289.html “你还有什么要说的吗?没有的话我就要动手了”,kill程序最后问道。 这一次,我没有再回答。 只见kill老哥手起刀落,我短暂的一生就这样结束了··· 我是一个网络程序,一直以来都运行在Windows系

[转帖]第七篇:双管齐下,JVM内部优化与JVM性能调优

文章目录 一、前言二、编译时优化2.1 Javac编译器2.2 Java语法糖2.2.1 泛型和泛型擦除2.2.2 自动装箱、自动拆箱、遍历循环2.2.3 条件编译 三、运行时优化(核心:JIT编译器/即时编译器)3.1 HotSpot虚拟机内的JIT编译器3.1.1 编译器和解释器并存的架构3.1

【转帖】isolcpus功能与使用

isolcpus功能存在已久,笔者追溯v2.6.11(2005年)那时内核就已经存在了isolcpus功能。根据kernel-parameters.txt 上的解释,”isolcpus功能用于在SMP均衡调度算法中将一个或多个CPU孤立出来。同时可通过亲和性设置将进程置于 “孤立CPU”运行,iso

Windows 修改时间提示: 某些设置已隐藏或由你的组织管理 的解决方案

最近公司的一台生产服务器时间不对. 因为机器有域控的需求, 所以加入了域, 想改时间时有这样的提示信息: 某些设置已隐藏或由你的组织管理 百度了很久发现没有解决方法.. 但是突然发现可以使用 运行->cmd 或者是powershell 运行命令: timedate.cpl 的方式进行修改. 问题解决

[转帖]armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别

ARM处理器指令集 一. 苹果模拟器指令集: 指令集分析i386针对intel通用微处理器32架构的x86_64针对x86架构的64位处理器i386|x86_64是Mac处理器的指令集,i386是针对intel通用微处理器32架构的。x86_64是针对x86架构的64位处理器。 模拟器并不运行arm

【转帖】Java Full GC (Ergonomics) 的排查

文章目录 1. Full GC (Ergonomics)1.1 Java 进程一直进行 Full GC1.2 Full GC 的原因1.3 检查堆占用 2. 代码检查3. 解决方式 1. Full GC (Ergonomics) 1.1 Java 进程一直进行 Full GC 例行检查线上运行的 J

【转帖】JVM 内存模型与垃圾回收

文章目录 1. JVM内存模型1.1. 程序计数器 (线程私有)1.2. Java 虚拟机栈 (线程私有)1.3. 本地方法栈 (线程私有)1.4. Java 堆 (线程共享)1.5. 方法区 (线程共享)1.6. 运行时常量池 (线程共享)1.7. 直接内存 (堆外内存) 2. 垃圾查找算法2.1

[转帖]Sosreport:收集系统日志和诊断信息的工具

https://zhuanlan.zhihu.com/p/39259107 如果你是 RHEL 管理员,你可能肯定听说过 Sosreport :一个可扩展、可移植的支持数据收集工具。它是一个从类 Unix 操作系统中收集系统配置详细信息和诊断信息的工具。当用户提出支持服务单时,他/她必须运行此工具并