随笔分类 -  Linux

摘要:背景 在一次项目的性能调优中,发现出现竞争瓶颈,导致在资源未使用满的情况下,TPS已经无法提升。祭起JMC(JAVA MISSON CONTROL)飞行记录器大法后,发现线程集中等待在logback写日志的地方,如下图所示: 由于项目组多线程写如同一个文件日志,导致存在IO竞争,一般解决这种问题有三 阅读全文
posted @ 2020-01-07 14:31 朱子威 阅读(8672) 评论(0) 推荐(0)
摘要:首先,所有的系统调用都是原子性的。这句话来自TLPI: "All system calls are executed atomically. By this, we mean that the kernel guarantees that all of the steps in a system c 阅读全文
posted @ 2020-01-07 14:29 朱子威 阅读(1890) 评论(1) 推荐(0)
摘要:1. 为什么是Reactor模式 写多了代码的兄弟们都知道,JAVA代码由于到处面向接口及高度抽象,用到继承多态和设计模式,程序的组织不是按照正常的理解顺序来的,对代码跟踪很是个问题。所以,在阅读别人的源码时,如果不了解代码的组织方式,往往是晕头转向,不知在何处。尤其是阅读经典代码的时候,更是如此。 阅读全文
posted @ 2020-01-07 10:46 朱子威 阅读(1295) 评论(0) 推荐(0)
摘要:select、poll、epoll之间的区别(搜狗面试) (1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差 阅读全文
posted @ 2020-01-06 11:50 朱子威 阅读(1528) 评论(0) 推荐(0)
摘要:在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。 下面就分别来介绍一下这5种IO模型的异同。 1.阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没 阅读全文
posted @ 2020-01-06 11:09 朱子威 阅读(866) 评论(0) 推荐(0)
摘要:前言 零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这 阅读全文
posted @ 2019-12-30 15:20 朱子威 阅读(726) 评论(0) 推荐(0)
摘要:来自如下网站 https://www.cnblogs.com/sparkdev/p/8410350.html 内核空间和用户空间 对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kerne 阅读全文
posted @ 2019-12-30 14:08 朱子威 阅读(1920) 评论(0) 推荐(0)
摘要:我们都知道CPU上下文切换,会增加系统负载。那什么是CPU上下文,为什么要切换? 什么是CPU上下文 我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同 阅读全文
posted @ 2019-11-25 10:35 朱子威 阅读(1011) 评论(0) 推荐(0)
摘要:一、文件比较运算符 1. e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ] 2. -d filename 如果 filename为目录,则为真 如: [ -d /tmp/mydir ] 3. -f filename 如果 filename为 阅读全文
posted @ 2018-09-10 16:50 朱子威 阅读(192) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-07-12 10:33 朱子威 阅读(96) 评论(0) 推荐(0)
摘要:/bin:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev :dev是Device(设备)的缩写, 该 阅读全文
posted @ 2018-06-29 15:57 朱子威 阅读(239) 评论(0) 推荐(0)
摘要:常用 cd,mv ,cp ,ls, ll, vi, vim, yum, w-get, tar, chmod, mkdir 复杂 nc(监听端口), ps aux|grep ...(查看进程),scp(ssh登录情况下的复制) scp 文件路径 username@url:filepath Java - 阅读全文
posted @ 2018-06-29 15:52 朱子威 阅读(117) 评论(0) 推荐(0)