- 博客(30)
- 收藏
- 关注
原创 深入理解网络栈
然后调用 ip_local_deliver 函数。该函数根据 package 的下一个处理层的 protocal number,调用下一层接口,包括 tcp_v4_rcv (TCP), udp_rcv (UDP),icmp_rcv (ICMP),igmp_rcv(IGMP)。5、net_rx_action函数关中断,获取每个 Network device 的 rx_ring 中的所有 package,最终 package 从 rx_ring 中被删除,进入 netif _receive_skb 处理流程。
2023-07-17 00:05:44
568
原创 record-8.常见类型问题
3、恢复内核抢占, 然后检查当前进程是否设置了重调度标志TLF_NEDD_RESCHED, 如果该进程被其他进程设置了TIF_NEED_RESCHED标志, 则函数重新执行进行调度。相关函数io_schedule,io_schedule_timeout,mutex_lock_io,mutex_lock_io_nested。,而在切换出去前,会将其in_iowait设置为1,再次被唤醒的时候in_iowait被设置为原值。3、竞争激烈,导致120s都无法拿到资源,比如内存耗尽或大内核锁;
2023-07-03 16:18:12
169
原创 record-9.调度
3)在umount时抓取调度相关信息,查看trace文件发现每100ms的周期大概有10ms左右在跑umount进程(cpu占用率为10%),查看umount所处的cpu组下的cpu.cfs_quota_us参数配置为10000(单位为us,表示100ms内只有10ms在运行进程),与现象对应。在4.19 ARM(128核)上做了2个cgroup,一个分组是0-31核,一个是32-127核,但是业务跑起来后,发现64核会有个分水岭。在压测条件下,umount进程的stack与现网相似。
2023-07-03 16:13:39
272
原创 record-5.内存
(1)工具介绍:pyrasite是一个库和一组工具,用于将任意代码通过GDB注入到运行的Python进程中(2)工具依赖:gdb > 7.3 gcc python3-devel(3)python包:urwid meliae mem-top guppy3(4)工具使用A. 关闭selinux:setenforce 0B. pyrasite-shell + 进程号B.1 使用mem_top打印进程的内存占用情况#X:表示显示的条数#Y:表示显示的数据长度。
2023-07-03 16:10:47
152
原创 record-1.安装启动
> boot.img来加载GRUB的另一个镜像core.img(diskboot.img + lzma_decompress.img + kernel.img + modules&others)boot.img 将控制权交给 diskboot.img 后,diskboot.img 的任务就是将 core.img 的其他部分加载进来。BIOS -> GRUB2(boot.img+core.img)-> GRUB2会先安装MBR中的代码,即boot.img。报错:卡在check media;
2023-06-29 20:06:00
101
原创 record-4.网络
物理层、数据链路层(网桥,交换机)、网络层(IP,ICMP,ARP)、传输层(TCP,UDP)、会话层、表示层、应用层。:网络接口层、 网际层、运输层、 应用层。:物理层、数据链路层、网络层、运输层、 应用层。
2023-06-29 19:54:23
347
原创 cgroup&&oom使用
背景:execve中循环调用malloc,会出现以下三种情况:1、execve失败2、触发oom,进程被杀死3、触发panic,单板重启结论:1、execve失败是由于malloc的空间大小过大,导致直接分配错误2、/proc/sys/vm/panic_on_oom设置为0,会触发oom,killer杀死bad process3、/proc/sys/vm/panic_on_oom设置为1,会直接触发panic知识点:1、malloc分配了就一定可用吗? 不是以下是malloc的官方文档介绍。默认情况下,li
2021-09-13 11:05:07
644
原创 内核高端内存
csdn博客 内存相关https://blog.csdn.net/pwl999/category_7217602.html内核高端内存:当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射物理地址 = 逻辑地址 – 0xC0000000(3G):这是内核地址空间的地址转换关系,注意内核的虚拟地址在“高端”,但是ta映射的物理内存地址在低端。假 设按照上述简单的地址映射关系,那么内核逻辑地址空间访问为0xc00000
2021-08-13 09:49:53
124
原创 Linux下安装python3.7后别的python出现six包错误
因为想使用catboost的参数cat_features,低版本的python使用不了(python3.4),就想用python新版本,添加了python3.7上去,问题就来了,six这个依赖包导入一直错误,导致原有的python3.5的tensorflow,pandas等都不能用。如图:解决方法:下载six安装包https://pypi.python.org/pypi/six/...
2019-08-07 21:16:49
1888
原创 Ubuntu16.04下xbrowser远程图形化桌面配置(简单几步完成~)
搞了好几天,配置了xmanger,走过了太多坑,直到看到这篇博客https://www.cnblogs.com/findumars/p/8182009.html步骤:1.远程桌面环境安装sudo apt-get installxubuntu-desktop2.修改lightdm配置文件sudo mv /usr/share/doc/lightdm/lightdm.conf.gz ...
2019-07-19 16:24:30
1461
1
原创 原码,补码,二进制减法
这篇博客从一道题说起,已知 x = (1<<31)-3,求x&-x?这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。这里进行下梳理。 一。原码,补码概念1.原码就是早期用来表示数字的一种方式。一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码例如:假设机器是32位系统,in...
2019-02-21 00:26:07
7880
原创 DataWhale集训-6.实战DP
【任务6,实战DP】实战DP:完成0-1背包问题实现(自我实现)及Leetcode上Palindrome Partitioning II(132)。0-1背包问题: 0-1背包问题:有一个贼在偷窃一家商店时,发现有n件物品,第i件物品价值vi元,重wi磅,此处vi与wi都是整数。他希望带走的东西越值钱越好,但他的背包中至多只能装下W磅的东西,W为一整数。应该带走哪几样东...
2019-02-01 22:28:30
133
原创 DataWhale基础算法梳理-3.决策树
【学习任务】1. 信息论基础(熵 联合熵 条件熵 信息增益 信息增益比 基尼不纯度)?2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景?3. 回归树原理?4. 决策树防止过拟合手段?问题答案:1.信息论基础熵:信息是很抽象的概念,一直都无法估计信息量,直到1948年,香农提出了“信息熵”的概念,指出了“信息是用来消除随机不确定性的东西”,...
2019-01-31 23:05:59
175
原创 DataWhale集训-5.实践递归
任务6,实战递归】实战递归:完成Leetcode上的Letter Combinations of a Phone Number(17)及permutations(46)17. Letter Combinations of a Phone NumberGiven a string containing digits from 2-9 inclusive, return all possib...
2019-01-31 21:57:44
178
原创 DataWhale集训-5.递归,动态规划
今天主要学习两种思想,递归和动态规划。递归:1.递归定义:递归(Recursion)是指在函数的定义中使用函数自身的方法,即程序的自身调用。2.递归特点:(1)出口:在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。 (2)效率:递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。 (3)栈溢出:在递归调用...
2019-01-30 20:37:59
143
原创 DataWhale基础算法梳理-2.逻辑回归
【学习任务】 Logistic回归损失函数的极大似然推导:西瓜书公式3.27怎么推来的? Logistic回归损失函数的最优化算法:什么是牛顿法、拟牛顿法? 为什么不用线性回归做分类? Logistic回归为什么不像线性回归那样用平方损失函数? Logistic回归的参数为什么不像线性回归那样直接公式求解? Logistic回归与线性回归有哪...
2019-01-29 21:57:19
169
原创 DataWhale集训-4.二叉树
二叉树:学习三种遍历(前、中、后)及层次遍历,并完成leetcode上的验证二叉搜索树(98)及二叉树 层次遍历(102,107)一。二叉树特点二叉树是树的一种特殊结构,它具有三个特点:1.每个结点最多有两个子树,结点的度可以为0,1,22.左子树和右子树是由顺序的,次序不能颠倒3.即使某结点只有一个子树,也要区分左右子树二。二叉树性质1.一般二叉树性质(1)在非...
2019-01-29 21:13:08
136
原创 DataWhale集训-3.队列,堆排序
队列与堆:学习队列思想及堆排序思想,并完成leetcode上的返回滑动口中的最大值(239)打卡方式:提交队列与堆学习心得笔记 +LeetCode提交结果与代码 一。队列:1.队列特点队列是一种特殊的数据结构,不同于栈这种特殊的数据结构只能在一个位置(栈顶)删除和插入数据,队列可以在队首插入数据和队尾删除数据,而且队列具有“先进先出”的特点。 2.队列类型首先根据...
2019-01-28 20:58:23
142
原创 DataWhale集训-2.单链表,环形链表
链表:实践环形链表(142,两种方法)及反转一个单链表(206)。142. Linked List Cycle IIGiven a linked list, return the node where the cycle begins. If there is no cycle, return null.To represent a cycle in the given linked ...
2019-01-27 21:58:21
145
原创 DataWhale基础算法梳理-1.线性回归,梯度下降
一。问题:1.线性回归损失函数的极大似然推导:西瓜书公式3.4除了用最小二乘法以外,怎么用极大似然推得?2.一元线性回归的参数求解公式推导:西瓜书公式3.7和3.8怎么推来的?3.多元线性回归的参数求解公式推导:西瓜书公式3.10和3.11怎么推来的?4.线性回归损失函数的最优化算法:什么是批量梯度下降、随机梯度下降、小批量梯度下降?二。笔记4.批量梯度下降...
2019-01-27 16:11:44
201
原创 DataWhale集训-1.hash,数组
这里解决leetcode的两道题,第1题(twosum)和第202题(happy number)因为这里要使用hash的思想,首先回顾下hash表的定义。哈希表其实又叫散列表,是算法在时间和空间上做出权衡的经典例子。如果一个表所有的键都是小整数,我们就可以用一个数组来实现无序的符号表,将键作为数组的索引而数组中i出存储的值就是它对应的值。1. Two SumGiven an arr...
2019-01-26 21:57:18
153
原创 pat_甲级_1005_Spell it right
题目如下链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805519074574336这道题思路很简单,就是把输入的N的每一位相加起来,得到的数针对每一位以英文输出,每一位之间要有空格。例如:12345->求和得到15->输出one five这道题给定的N的取值范围是 (≤10^100)...
2018-11-08 22:17:51
187
原创 Mac压缩文件命令
我们知道在Mac中如果右键直接压缩文件会出现许多其他文件,当我们比赛提交压缩文件时会很头痛。所以我们要用Mac压缩命令。命令格式:zip -q -r -e -m -o 压缩包名 文件地址(路径)-q: 不显示压缩进度状态-r :表示子目录文件全部压缩为zip-e :加密-m :压缩完删除原文件-o:表示设置所有被压缩文件的最后修改时间为当前压缩时间一般,操作就...
2018-10-22 09:51:49
2903
原创 pat_乙级_1008_数组元素循环右移问题
008 数组元素循环右移问题 (20 分)一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格...
2018-10-13 23:22:18
108
原创 在Mac下安装python libsvm模块
1.下载libsvm http://www.csie.ntu.edu.tw/~cjlin/libsvm/2.解压,进入目录3.make4.进入python make5.python目录下的*.py文件拷贝至/Users/zhangyiru/anaconda/lib/python3.6/site-packages/目录下6.并将python上级目录的libsvm.so.2 拷贝至...
2018-09-26 13:04:16
858
1
原创 tensorflow中如何查看梯度
1.为什么要查看梯度对于初学者来说网络经常不收敛,loss很奇怪(就是不收敛),所以怀疑是反向传播中梯度的问题(1)求导之后的数(的绝对值)越来越小(趋近于0),这就是梯度消失(2)求导之后的数(的绝对值)越来越大(特别大,发散),这就是梯度爆炸所以说呢,当loss不正常时,可以看看梯度是否处于爆炸,或者是消失了,梯度爆炸的话,网络中的W也会很大,人工控制一下(初始化的时候弄小点等...
2018-09-23 21:01:31
11548
转载 GBDT调参小结(摘自博客园—刘建平Pinard)
原文链接:http://www.cnblogs.com/pinard/p/6143927.html1. scikit-learn GBDT类库概述 在scikit-learn中,GradientBoostingClassifier为GBDT的分类类, 而GradientBoostingRegressor为GBDT的回归类。两者的参数类型完全相同,当然有些参数比如损失函数loss的可选...
2018-08-09 16:26:01
1564
原创 GBDT-回归树的建立
GBDT中的树是回归树。最近才开始看GBDT的内容,发现基础是回归树,抓起统计学习方法(p69 算法5.5)就开始看,发现书上的那些式子很晦涩,翻阅了很多的博客,大致了解了回归树的建立方法。之后会总结GBDT的回归和分类模型。一。算法思想,回归树递归地将每个区域划分为两个子区域并决定每个子区域的输出值。二。步骤:1.遍历选定的变量j,对固定的切分变量j扫描切分点s,选择使下式最小的...
2018-08-09 10:23:59
613
原创 肖像解密
有一张图灵奖得主的肖像照片,被一个学生用简单的异或加密方法,编码成了如下这样的字符串: vOy67L3rveu667rsveu97b3rveq67L3qvey67L3rvey77brruuy667rquuy667zrvey97b3quuy66rzsu+u967rsu+u87L3tu+y96r3svey77Lzruuy66rrtuuu97Lvtuuu77b3svey67b3sveq67L3qveu6...
2018-06-11 20:02:57
1793
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人