databrains
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  •   
  •   

CPU使用率过高的问题

上次某公司面试官问了我一个实际生产问题,CPU使用率达到100%怎么办,如何排查和如何解决。 $CPU使用率=1-空闲时间/总CPU时间$,我们将空闲时间称为idle,而$CPU时间=用户态CPU时间+低优先级CPU时间+内核态CPU时间+等待I/O的CPU时间+处理硬中断的CPU时间+处理软中断的CPU时间+steal时间$。 首先,我们可以使用top命令获取CPU和内存的使用情况,定位到CPU

2022-07-09

西二旗日记_day1

人生要是没有一段在西二旗挣扎的日子,你就不会感恩从前的生活,这是真的。 如果按照我抽房东的烟要想把房租抽回来,估计要一天抽40根。 狗日的中介收了我2800的中介费,北京所有的中介加起来凑不出一个马。 西二旗这个郊区有点过于离谱了。 房东说他家有的是钱,他女儿想干啥干啥,想学啥学啥。 用房东的电费吹16度空调,还是有点爽的。 今天去了宇宙中心中关村。

2022-07-05
生活日记
西二旗

v2Ray-core实现

仅以此文,致敬v2Ray创始人——Victoria Raymond 首先我们来看看v2Ray的代码结构,如下所示: 1234567891011v2ray-core├── app // 应用模块│ ├── router // 路由├── common // 公用代码├── proxy // 通讯协议,参见[协议列表](../chapter_02/02_prot

2022-06-11
计算机网络
v2ray

记一次manjaro OS恢复

我的PC前段时间短路了,更换主板之后重新启动电脑没有manjaro OS和Windows的启动项选择界面了,而是直接进入Winows,查看BOIS之后发现只有一个Winows启动项,遂开始恢复。 首先我发现只有一个Winows启动项,于是直接在Winows下管理员cmd中输入如下命令增加启动项: 1$bcdedit /set "{bootmgr}" path

2022-05-29

CMU_15-445_PROJECT#3

TASK #1 - SYSTEM CATALOG在这个任务中,我们会修改rc/include/catalog/catalog.h以允许 DBMS 将新表添加到数据库并使用名称或内部对象标识符 ( table_oid_t) 检索它们。 我们在最新的BusTub中可以看到catalog的实现,但是这个版本只能实现通过6个测试, 先来看看TableInfo的结构体: 123456789101112131

2022-05-16
数据库
CMU_15-455

Golang与IO多路复用

selectGolang的select关键字,用到了多路复用的概念,当然不是IO多路复用,因为没有涉及到输入输出。先看看下面例子: 1234567891011121314151617181920212223package mainimport ( "fmt" "sync")func main() { c1:=make(chan int,1) var

2022-04-03

Golang_包解析

Go map底层实现Go语言的map的底层实现基于Hash散列,Hash散列是一种著名的广义上的算法,它能将任意长度的数据映射到有限的值域当中。在实际工程中输入数据范围是无限的,而输出值域范围是有限的,因此必然存在不同的输入数据经过映射后得到相同的输出值,这种现象称为hash冲突,go底层通过链表解决hash冲突。值得注意的是:==Java1.8中使用平衡树来优化局部链表过长的性能问题。== 使用

2022-03-20

Go runtime

Go panic大多数编程语言都提供了异常处理机制,恰恰相反,Go延续了C语言的风格,并未提供异常处理机制。但在Go中,提供了panic异常,从某种意义上说,它也非常接近其他语言的异常处理。 Go语言在编译期间就能捕获大量异常,但是有些异常只能发生在运行期间,比如运行期间的除以0的异常,数组越界错误等。 除了程序本身的问题导致panic异常外,也可以直接在程序里调用panic函数引发panic异常

2022-03-12
Go语言
go map

MIT_6.s081_Lab6_Copy-on-Write Fork for xv6

早期的fork()实现较为“简单粗暴”,会将父进程的物理内存完整拷贝一份,并映射到子进程的内存空间中,这种方式在很多情况下是不必要的,一部分虚拟内存是只读的,对他们进行拷贝是一种浪费,其次,由于进程有时会在调用fork函数之后立即调用exec以载入新的可执行文件,重置地址空间,之前的内存拷贝就完全失去了意义。因此可以用写时拷贝技术来对fork的实现进行优化。对于本来就是只读的虚拟页,父进程和子进

2022-02-24
操作系统
MIT_s.081_Lab

MIT_6.s081_Lab5_lazy page allocation

Eliminate allocation from sbrk()我们先来看看这个图: 代码段不必多说,唯一要注意的点就是fork()函数调用的时候不会去复制程序段,而是通过映射让父子进程共享。 我们现在要给用户空间分配内存就是说 我们知道,sbrk()分配物理内存并将其映射到进程的虚拟地址空间,内核为大型请求分配和映射内存可能需要很长时间。 本实验你的任务是修改 sys_sbrk()使得其只增加

2022-02-21
操作系统
MIT_s.081_Lab
123

搜索

Hexo Fluid