摘要:首先,并发写入确实是随机io,但是uuid带来的页分裂更恶劣 而多线程并发写入有序id,操作系统有办法优化,比如磁盘调度算法-电梯算法 老实说ds说的有点牵强
阅读全文
摘要:-java 堆内对象池 启用nocleaner堆外内存,增大新生代 精确控制gc次数 把程序写简单,编译期能干的事情就不在运行时干;避免用不必要的virutal function 关注java c的同一段逻辑的cpu cycle 和切换,jvm背地里会干的一些事情 contiguous 相邻内存块,
阅读全文
摘要:1 cleaner & nocleaner System gc;cleaner 观察者模式,虚引用; 缺点:带来高频gc即使堆那边还好 line 127,申请内存受jvm控制 2 所谓netty的内存泄漏是要发现什么 虚引用跟踪堆内bytebuffer对象释放事件,假如此时引用计数不为0,是为堆外内
阅读全文
摘要:1 mmap done https://blog.csdn.net/QuillChen/article/details/120380507 第一种方式需要预先分配好物理内存,内核才能将页高速缓冲中的文件数据拷贝到用户进程指定的内存空间中。(DMA从磁盘-》内核,CPU负责内核-〉用户) https:
阅读全文
摘要:https://cloud.tencent.com/developer/article/1677841 假设需求是将一个磁盘文件发布到网络上。 1 总共需要2次CPU拷贝、2次DMA拷贝,4次上下文切换,其中read和write各占一半; 程序调用系统方法mmap(图上有误),使用DMA的方式将磁盘
阅读全文
摘要:https://blog.csdn.net/xvktdmjg/article/details/114230993 1 aqs cas 总线锁 LOCK#信号就是我们经常说到的 总线锁 ,处理器使用 LOCK# 信号达到锁定总线,来解决原子性问题,当一个处理器往总线上输出LOCK#信号时,其它处理器的
阅读全文
摘要:https://blog.51cto.com/u_15257216/5502485 当网络数据帧通过网络传输到达网卡时,网卡会将网络数据帧通过DMA的方式放到环形缓冲区RingBuffer中。 当DMA操作完成时,网卡会向CPU发起一个硬中断,告诉CPU
阅读全文
摘要:对(三)中1.1和1.2 进行监控,加上强制nopool配置 -Dio.netty.allocator.type=unpooled https://zhuanlan.zhihu.com/p/142028031 1 -XX:MaxDirectMemorySize=100k -Dio.netty.all
阅读全文
摘要:0 0.1 https://www.cnblogs.com/exmyth/p/14205361.html java.nio提供的DirectByteBuffer提供了sun.misc.Cleaner类的clean()方法,进行系统调用释放堆外内存,触发clean()方法的情况有2种 (1) 应用程序
阅读全文
摘要:0 为什么usedDirectMemory不好用 PlatformDependent.usedDirectMemory始终返回-1 跟踪下来,io.netty.util.internal.PlatformDependent0#hasDirectBufferNoCleanerConstructor始终
阅读全文
摘要:0 服务对外内存oom,但健康检测还能访问,因为健康检测走8081直接,走的jvm内存 1 使用netty自带的泄露参数 -Dio.netty.leakDetectionLevel=advanced https://zhuanlan.zhihu.com/p/624117573?utm_id=0 30
阅读全文
摘要:-283-1 -6 0 文件26M 循环映射: 其它参考: MappedByteBuffer VS FileChannel 孰强孰弱?
阅读全文