![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 94
没啥介绍
georgesnoopy
这个作者很懒,什么都没留下…
展开
-
cpu飚高的排查思路
cpu的衡量指标使用率util:代表的是单位时间内CPU繁忙情况的统计。操作系统对cpu的管理就是利用周期的tick时钟中断,将cpu的使用划分时间片。每个时间片内去执行不同进程/线程里的代码。所以cpu的使用率统计其实也是以tick为单位的:统计周期内,有多少个tick是在执行进程/线程里的指令的。top、pidstat等工具查看到的cpu使用率是指统计周期内cpu的占用情况load:平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,原创 2023-06-06 09:02:47 · 2556 阅读 · 0 评论 -
BIO/NIO/AIO/IO多路复用简介
bio、nio、aio、io多路复用、reactor模式io,在将IO的时候,是不是都遇到过这些概念,也有种傻傻分不清?甚至别人在大谈特谈的时候,一会nio,一会io多路复用,一会又搞到reactor模式上去了?这些概念到底是什么?什么关系?这些都是我曾经的疑问。这里说明一下这些概念,帮助理解redis的单线程+io多路复用实现高性能,因为很多其他这种需要IO的也使用了多路复用,但并不是单线程,比如netty,也实现了高性能的io,啥区别呢?下面就结合掌握的只是和理解,来尝试理清楚这些概念。原创 2023-03-31 20:14:36 · 766 阅读 · 0 评论 -
什么是惊群效应
这个话题来自一个面试,当问到Socket编程中的accept()是否有惊群问题,引深又文档epoll多路复用中epoll_wait()是否有惊群问题。因为没有准备背过八股文,突然问到这个问题,还是稍微有点措手不及,当然就没有背过的那么快速干脆了,而对方在强调结果,也没给我思考分析的时间,我还在仔细回想这个里哪里存在惊群问题的时候,对方已经打断我说好了。所以这里就记录分析一下,到底什么是惊群效应,以及在并发编程中的应对方式。原创 2022-10-22 08:25:42 · 2698 阅读 · 2 评论 -
C10K问题与IO多路复用
操作系统早期的IO都是阻塞式的,所以为了一个应用能够支持并发的IO操作,所以基本的做法就是每来一个IO请求,就创建一个线程来专门处理。当IO并发不大的情况,这中方式工作的很好但随着IO并发越来越大,到了每秒需要支持1000的并发量的时候,那么就需要创建1000个线程来支持。随着线程越来越多,极大的超出了cpu的核心数,那么随之而来的就cpu调度成本增加、大量的上下文切换、以及线程的内存消耗等,这些都将成为并发量继续增加的瓶颈。所以并发量很大的情况下,就不再适合用这种模型来处理。原创 2022-10-22 08:22:15 · 411 阅读 · 0 评论 -
BIO和NIO消耗的cpu和内存比较
这个其实是遇到的一道面试题,其题目描述也很简单,BIO和NIO消耗的cpu和内存哪个比较大。因为确实从来没遇到过去从这个角度去比较NIO和BIO的,所以我尝试变结实原来,边分析,但是整个过程对方三次认为我跑题了,强调回到他问题的本身,先给出答案,所以整个过程其实并没有真的深入去分析。但我觉得这个问题有点意思,就记录一下,从我掌握的知识来分析一下。..............................原创 2022-08-27 08:34:54 · 955 阅读 · 0 评论 -
用户态vs内核态、进程vs线程
用户态、内核态,进程、线程这些概念经常是脱口而出,但是并没有特别理解这些概念背后的含义。比方说,对于java的多线程,有的地方说java多线程线程切换的时候会涉及用户态切换到内核态、进程上线文切换、线程上下文切换,会耗时,我们真的了解这些个过程到底是在干啥,为啥会耗时么?有的时候傻傻分不清楚。所以学习观摩了一下,整理成读书笔记,记录自己的理解。所以这个文档仅仅是尝试将自己学习了解的,用我熟悉的理解方式记录下来,对linux底层的东西我并不熟悉,所以不是在传递linux编程的知识点,只是一些我认为的通俗易原创 2021-04-09 16:28:35 · 860 阅读 · 0 评论