#!/bin/bashVMWARE_VERSION=workstation-15.1.0TMP_FOLDER=/tmp/patch-vmwarerm -fdr $TMP_FOLDERmkdir -p $TMP_FOLDERcd $TMP_FOLDERgit clone https://github.com/mkubecek/vmware-host-modules.gitcd $TMP_FOLDER/vmware-host-modulesgit checkout $VMWARE_VERSIONgi…
文件系统相关 fs.aio-nr = 0 当前aio请求数 fs.aio-max-nr = 1048576 最大允许的aio请求数 fs.file-nr = 3456 0 94159 已分配的文件handle数量/已分配但没有使用的/最大文件handle fs.file-max = 94159 内核支持的最大file handle数量 fs.nr_open = 1048576 nr_open是一个进程可以打开的最大文件数 fs.inode-nr = 13030 1629 列出inode-stat…
场景: 拿到了客户50个文件,平均每个文件大概40M左右的txt,文件在S3上,需要导入到数据库,40M解析出来大概是80W条左右的数据. 描述: 在刚开始执行导入时,因为数据验证复杂程度不同,每个文件耗时大概6到9分钟,执行到第20个文件之后,效率明显变低,执行到第 35个文件时free查看内存使用情况used已经占用到了15G(服务器内存16G),发现cached非常之高竟然有13G之多. 解决: 因为每个文件用过之后就不会再用,实际上缓存了文件对于目前的场景来说并没有什么实质性帮助,反而会…
问题: 打开虚拟机的文件目录,找到.vmx 文件 用记事本打开重命名后的“.vmx.txt”文件 找到行:policy.vm.mvmtid = "52 10 08 ed ff 34 ed d1-36 82 e1 127d e9 71 d9"并删除,找到行:policy.vm.managedVMTemplate = "FALSE"并删除,找到行:policy.vm.managedVM = "FALSE"并删除 在“.vmx”文件同目录找到“.vmx…
[, comm: -IFileSender Tainted: G B ENX -- ZTE Grantley/S1008 [:[<ffffffff810fb2cb>] [<ffffffff810fb2cb>] find_get_pages_contig+0x5b/0x110 [:ffff883edfc2fab8 EFLAGS: [ RCX: [ RSI: ffffea000a9164e8 RDI: ffffea000a9164e0 [ R08: R09: ffff883edfc2f…
一.内核的任务 纯技术层面上,内核是硬件与软件的之间的一个中间层.作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址. 从应用程序视角上看,内核可以被认为是一台增强的计算机,将计算机抽象到一个高层次上.应用程序与硬件本没有联系,只与内核有联系,内核是应用程序所知道的层次结构中的最底层. 当若干程序在同一系统中并发运行时,也可以将内核视为资源管理程序.内核负责将可用共享资源分配到各个系统进程,同时保证系统的完整性. 将内核视为库,其提供了一组面向系统的命令.通常…
最近,将部分开发和测试环境的mysql升级到5.7之后,今天抽时间测试了下5.6和5.7 PK查询的性能,使用mysqlslap进行测试,测试结果发现在低配下,percona 5.6.31大约比5.7.15快20-30%左右,percona 5.7.15比mysql企业版5.7.16快10%左右,如下: --mysql企业版 mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='se…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 陈莉君 来源: 微信公众号linux阅码场(id: linuxdev) 初次踏入Linux 几多耕耘,几多收获,不小心在Linux这个自由王国畅游了多年.依稀记得刚进入这个世界时的那份恐慌和无知,更庆幸那时的无知无畏.在那个20世纪的最后一年,贸然带着几个弟子踏入一无所知的Linux世界. 1999年的那个春天,也是在讲授操作系统,只不过是鼓励大家参加我的兴趣小组.居然有10个人报名了(惊喜).最初也无非是…
Linux 内核系统架构   描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候,还是需要fucking the code. 28年前(1991年8月26日)Linus公开Linux的代码,开启了一个伟大的时代.这篇文章从进程调度,内存管理,设备驱动,文件系统,网络等方面讲解Linux内核系统架构.Linux的系统架构是一个经典的设计,它优秀的分层和模块化,融合了数量繁多的设备…
版权声明:本文原创,转载需声明作者ID和原文链接地址. Hi!大家好,我是CrazyCatJack.今天给大家带来的是Linux内核启动过程概述.希望能够帮助大家更好的理解Linux内核的启动,并且创造出自己的内核^_^ Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多.毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的.而且直到现在,这个世界上仍然有成千上万的程序员在不断完善Linux内核的代码.今天我们主要讲解的是Linux-2.6.22…
构造一个简单的Linux系统MenuOS 第三章基础知识 计算机的三大法宝:存储计算机,函数调用堆栈,中断. 操作系统的两把宝剑:中断上下文,进程上下文. Linux内核源码的目录结构: arch目录:arch目录是linux内核目录中比较重要的一个目录,因为arch目录中的代码可以使Linux内核支持不同的CPU和体系结构. block目录:存放Linux存储体系中关于块设备管理的代码. crypto目录:存放常见的加密算法的代码. drivers目录:驱动目录,里面分别存放了Linux内核支…
第3章  MenuOS的构造 1  Linux内核源代码简介        计算机的“3大法宝”:存储程序计算机.函数调用堆栈和中断. 操作系统的“两把宝剑”:一把是中断上下文的切换——保存现场和恢复现场:另一把是进程上下文的切换. Linux内核源码目录如下图所示:         其中可以把内核源代码目录分为系统最核心组件和系统次核心组件. 系统最核心组件包括:  arch目录:该目录是与体系结构相关的子目录列表,里面存放了许多CPU体系结构的相关代码,比如arm.x86.MIPS.PPC等…
原创:技术最前线(id:TopITNews) 北京时间 5 月 7 日,2019 年微软 Build 开发者大会在雷德蒙德召开.今年大会上亮点很多,本文汇总一些和开发者相关的内容. 1. Windows 10 新终端工具 微软的新终端工具出炉了,名字就叫 Windows Terminal,过段时间会在「微软商店」会上架. Windows Terminal 的特性有: 支持多 Tab 可定制主题 漂亮的富文本 Windows Terminal 用了 GPU 加速的文本渲染引擎,能呈现内容更加丰富多…
http://mogu.io/156-156 摘要 本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些Linux内核机制从而选择更合适的使用策略. 前言 搜索团队的服务器前段时间频繁出现CPU load很高(比如load average达到80多)的情况,正所谓术业有专攻,搜索的兄弟们对Linux底层技术理解的不是很深入,所以这个问题困扰了他们一段时间. 相信我们在遇到问题时都有类似的经历,如果这个…
    Linux内核地址映射模型x86 CPU采用了段页式地址映射模型.进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存. 段页式机制如下图.   Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间.注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的.   Linux内核高端内存的由来 当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射,如逻辑地址0…
摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中.用户空间的内存映射采用段页式,而内核空间有自己的规则:本文旨在探讨内核空间的地址映射.   Linux内核地址空间划分 通常32位Linux内核虚拟地址空间划分0~3G为用户空间,3~4G为内核空间(注意,内核可以使用的线性地址只有1G).注意这里是32位内核地址空间划分,6…
Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型.进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存. 段页式机制如下图. Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间.注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的. Linux内核高端内存的由来 当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射,如逻辑地址0xc00000…
问题原因:内核的某次升级,导致系统无法启动. 首先进入recovery模式:引导界面选择-->Ubuntu高级-->出现的选项中选择能够启动的recovery模式(几个内核版本分别试一下)-->确认后就能看到一个界面出现很多选项,选择第一个recovery模式-->OK.(大概步骤就是这样,自己摸索一下就出来了) 然后就进入系统了.在这里操作如下 1,查看/boot/下的文件 abi-4.4.0-31-generic memtest86+.binabi-4.4.0-98-gener…
原文:linux内核笔记之高端内存映射 在32位的系统上,内核使用第3GB~第4GB的线性地址空间,共1GB大小.内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的128M线性地址空间作为访问高于896M的内存的一个窗口. 引入高端内存映射这样一个概念的主要原因就是我们所安装的内存大于1G时,内核的1G线性地址空间无法建立一个完全的直接映射来触及整个物理内存空间,而对于80x86开启PAE的情况下,允许的最大物理内存可达到64G,因此内核将自己的最后128M的线…
背景:对vps小资源的实践中对,https://justwinit.cn/post/7536/ 的再优化,再实践,再优化,特别是Nginx,PHP,内核: 零)Nginx: error_log /data/logs/nginx_error.log notice; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 51200; PHP:…
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中.用户空间的内存映射采用段页式,而内核空间有自己的规则: Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中. 常见问…
上一篇微博留下了这几个函数,现在我们来分析它们         sanity_check_meminfo();         arm_memblock_init(&meminfo, mdesc);         paging_init(mdesc);         request_standard_resources(mdesc); 在上一微博有展现根据启动参数初始化meminfo,记录了物理内存的开始和大小 sanity_check_meminfo(); 有mmu的情况下这个函数才有意义…
原文:十天学Linux内核之第十天---总结篇(kconfig和Makefile & 讲不出再见) 非常开心能够和大家一起分享这些,让我受益匪浅,感激之情也溢于言表,,code monkey的话少,没办法煽情了,,,,,,,冬天的风,吹得伤怀,倒叙往事,褪成空白~学校的人越来越少了,就像那年我们小年之后再回家的场景一样,到处荒芜,然而我们的激情却不褪去,依然狂躁在实验室凌晨两点半的星空里,也许今天又会是这样的一年,不一样的是身边的人变成学弟学妹了,而我们几个大三老家伙依然在,为自己喜欢的事情,为…
linux内核实在是博大精深,有很多优秀的算法,我之前在工作中就遇到过位数高低位交换的问题,那时候对于C语言还不是很熟练,想了很久才写出来.最近在看内核的时候看到有内核的工程师实现了这样的算法,和我之前想的一样,那么今天就把它分享出来吧. 在开发需求中,有要实现32位.16位.8位数高低位交换的算法.那么我们具体看看代码实现: 还是一样,从linux内核中将代码抠出来: #include <stdio.h> //将一个8位数高低4位交换 static inline unsigned char…
非常开心能够和大家一起分享这些,让我受益匪浅,感激之情也溢于言表,,code monkey的话少,没办法煽情了,,,,,,,冬天的风,吹得伤怀,倒叙往事,褪成空白~学校的人越来越少了,就像那年我们小年之后再回家的场景一样,到处荒芜,然而我们的激情却不褪去,依然狂躁在实验室凌晨两点半的星空里,也许今天又会是这样的一年,不一样的是身边的人变成学弟学妹了,而我们几个大三老家伙依然在,为自己喜欢的事情,为自己的梦想,为我们的相互陪伴而不断努力,这样才对得起我们的青春,对得起这些难忘的岁月~~ 下面是我们…
在编译linux内核时,遇到了一个比较诡异的问题.具体log如下: Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: //usr/lib/perl/site_perl/5.22.1 //usr/lib/perl/vendor_perl/5.22.1 //usr/lib/perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…
前言 为了定位keepalived VIP的问题, 一步一步定位到IPVS, IPVS默认是没有打开Debug模式的, 若需要打开Debug模式需要重新编译IPVS模块加载后才行, 最好的方式当然是仅仅编译IPVS模块就行, 但是实践过程中发现单独编译IPVS模块存在诸多问题, 暂且先放一放, 后续再整理整理单独编译IPVS模块的文章. 编译 查看编译机器Linux内核版本 先查看本地主机内核版本, 这一步主要是为了防止应用切换内核版本后不兼容, 故编译的内核尽量确保跟原本内核版本一致 [roo…
近期将ubuntu升级到了14.04,出现了vmware无法启动的情况. 详细表现为:每次启动的时候都会弹出一个VMWare Kernel Module Updater的对话框,要求依据当前内核版本号又一次编译一些内核模块.可是当中网络模块vmnet总是编译失败. 查找相关资料发现原因在于升级到ubuntu 14.04之后如今的Linux内核版本号是3.13.这个内核版本号改动了一些底层函数,而VMWare的相关源代码包还没有来得及改动相关代码.因为是内核版本号的问题,所以相同的问题也大量出如今…
目前研究人员正抓紧检查 Linux 内核的安全问题,与此同时,微软也预计将在本月补丁日公开介绍 Windows 操作系统的相关变更. 而 Linux 和 Windows 系统的这些更新势必会对 Intel 的产品线造成冲击,预计可能会出现 5% 到 30% 的性能下降,具体还和处理器型号有关. 苹果的 macOS 也将需要进行更新,此缺陷也影响 Intel x86-64 的硬件,并且通过 microcode 更新无法解决此问题,必须是在系统级别的软件中进行修复,或者购买新的处理器. 过去十多年中…
转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的时间间隔,但因为驱动程序的生命期只限于系统的运行期 (uptime),所以也是可行的.驱动程序利用jiffies的当前值来计算不同事件间的时间间隔. 硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍).…