- 博客(641)
- 收藏
- 关注
原创 Linux·踩内存问题定位利器
2、指定的回调函数的调用时机:对X86,如果监视的是数据地址,则是在访问该数据的指令执行完成后,通过exception触发回调,如果监视的是指令地址,则是在该指令被执行前通过exception触发回调。在新的内核版本中引入了一个新工具hardware breakpoint,其能够监视对指定的地址的特定类型(读/写)的数据访问,有利于该类问题的定位;所以对于随机的内存踩踏(频繁的申请、使用、释放)是很难处理的,比较适合固定的地址踩踏。1、获取per_cpu变量的地址。
2025-03-18 14:58:53
309
原创 Linux·数据库INSERT优化
,写入磁盘本身就是一个耗时的操作,每次插入一点数据就同步一点数据,对于磁盘而言更是雪上加霜。到这里其实我们想到的第一个优化点,应该就是对于要插入的数据,一次性同步到磁盘,这样可以减少多次同步磁盘带来的时间消耗。插入的话时间消耗是很大的,具体而言单次插入600+时,就需要十几秒,显然这个时间是用户无法忍受的,那么有没有什么办法优化数据插入时间呢?在业务中,我们经常会要对数据进行存储,对于少量数据插入时,我们可以直接使用。插入数据,但是当我们需要插入的数据比较多时,使用。具体的,可以使用事务。
2025-03-04 17:01:38
448
原创 Linux·IP报文重组
其中rhashtable为分片队列(inet_frag_queue)所在的hash表,IP分片包在内核中根据IP报头的4个字段计算得到一个hash值(key值),每个hash值对应一个分片队列,在实现分片包重组功能时,IP层需要先缓存收到的所有分片包,等待同一个IP报文的所有分片包都到达后,把它们重组成一个大包再提交给L4(TCP/UDP... ...)协议。同时,处理与分片包相关的数据结构,譬如更新当前分片包占用的内存(frag_mem_limit),停止与分片包相关的定时器等。
2025-02-22 15:11:49
486
原创 Linux·spin_lock的使用
在使用spin_lock_irq和spin_unlock_irq的情况下,完全可以用spin_lock_irqsave和spin_unlock_irqrestore取代,那具体应该使用哪一个也需要依情况而定,如果可以确信在对共享资源访问前中断是使能的,那么使用spin_lock_irq更好一些。喔,我们在normal级别下获得了一个spinlock,正当我们想做什么的时候,我们被interrupt打断了,CPU转而执行interrupt level的代码,它也想获得这个lock,于是“死锁”发生了!
2025-02-21 17:36:15
1017
空空如也
为什么会存在不等于20000
2023-05-08
qt中动态库有什么作用
2023-03-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人