点我查看秘籍连载 OOM和swap分区 进程的虚拟内存空间是映射到整个物理内存空间的,所以在进程自身看来它拥有了整个物理内存,它也能使用整个物理内存,只需在使用的时候请求操作系统帮忙分配更多空间即可. 但是,操作系统上并非只运行了一个进程,如果一个进程无休止的申请物理内存空间,最终会导致物理内存耗尽或即将耗尽,使得操作系统无法创建新进程,因为创建新进程需要为它分配虚拟内存. 所以,操作系统必须得监视物理内存的使用情况,在出现物理内存耗尽或即将耗尽的时候,如果进程继续请求分配内存,将报错out-o…
点我查看秘籍连载 I/O操作和DMA.RDMA 用户进程想要执行IO操作时(例如想要读磁盘数据.向磁盘写数据.读键盘的输入等等),由于用户进程工作在用户模式下,它没有执行这些操作的权限,只能通过发起对应的系统调用请求操作系统帮忙完成这些操作.这里因为系统调用产生中断将陷入到内核,进行一次上下文切换操作. 内核进程帮忙执行IO操作时,由于IO操作相比于CPU来说是极慢的操作,CPU不应该等待在这个过程中,而是切换到其它进程上去执行其它任务.这里再次涉及到一次上下文切换:从内核态回到用户态的其它进程…
点我查看秘籍连载 CPU的归属:Idle进程 操作系统并不总是繁忙.例如个人PC上任务比较轻,多数时候都无法充分利用CPU,导致CPU处于空闲状态.但CPU既然通电了,它就得运行,那么在它没有任务需要执行的时候,CPU在干嘛呢? Idle进程的工作非常的轻松,就是累积CPU空闲时间,CPU工作在这种状态下,显然以最低能耗(最小频率)的方式在运行.另一方面,CPU执行Idle进程的时间,就是它的空闲时间.也正因为如此,个人PC机上(像Windows系统)查看到的Idle进程的CPU使用率几乎总是9…
两个缓冲空间:kernel buffer和io buffer 先看一张图,稍后将围绕这张图展开描述.图中的fd table.open file table以及两个inode table都可以不用理解,只需要知道它们体现出来的文件描述符和磁盘文件之间的对应关系:文件描述符fd(例如图中的fd=3)是对应磁盘上文件的. 在Linux下,我们经常会在IO操作时不可避免的涉及到文件描述符,因为Linux下的所有IO操作都是通过文件描述符来完成的.但是,文件描述符是一个非常底层的概念,通过它操作的数据,都…
前言 少年,我看你骨骼精奇,是万中无一的武学奇才,维护世界和平就靠你了,我这有本秘籍<Vim修炼秘籍>,见与你有缘,就十块卖给你了! 如果你是一名 Vimer,那么恭喜你,你的 Vim 技能马上要升级了…
CH01基于Ubuntu系统的ZYNQ-7000开发环境的搭建 1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx 2017.4 实验内容: 国内Windows系统盛行,普通使用者或者是开发人员都喜欢用Windows,但其实,不管是软件开发人员还是硬件开发人员,在Linux/Unix操作系统下进行开发才是最明智的选择,在这里可以轻易找到任何有用的开源软件(开源并不代表免费),接下有时候有相关…
因为CPU只有一个,同一时刻要么是客户进程在运行,要么是操作系统在运行,如果实现进程,需要一种控制权转换机制,这种机制便是中断. 要做的工作有两项:设置8259A和建立IDT. /*======================================================================* init_8259A *======================================================================*/ PU…
实际上,我们要做的工作是根据内核的Program header table的信息进行类似下面这个C语言语句的内存复制: memcpy(p_vaddr, BaseOfLoaderPhyAddr+p_offset, p_filesz); 复制可能不止一次,如果Program header有n个,复制就进行n次. 每一个Program header都描述一个段,语句中的P_offset为段在文件中的偏移,p_filesz为段在文件中的长度,p_vaddr为段在内存中的虚拟地址. 由ld生成的可执行文件…
0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DBA 首先,DBA是database administrator(数据库管理员)的简称,在一些招聘网站上,也可能会把职位写成数据库[管理]工程师,MySQL DBA是目前互联网企业中最为炙手可热的岗位需求之一,前(钱)景大好,快到碗里来吧. 2.MySQL DBA的职责 传统意义上的DBA基本上只要管…
Vim的脚本语言支持 本节开始,我们正式接触vimscript这门古老的脚本语言. 首先要说明,vim支持的扩展语言很多,比如python, python3, ruby, lua,tcl等常见脚本语言都有很好的支持.既可以支持脚本内嵌在.vimrc中,也可以执行python等脚本语言的文件. 运行:version命令就可以看到当前的vim发行版本持哪些扩展语言: VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jun 22 2017 03:02:45)…
8259A虽然已经设置完成,但是我们还没有真正开始使用它呢. 所有的中断都会触发一个函数spurious_irq(),这个函数的定义如下: PUBLIC void spurious_irq(int irq) { disp_str("spurious_irq: "); disp_int(irq); disp_str("\n"); } spurious_irq()其实什么也不做,仅仅是把IRQ号打印出来而已. 其实现在已经可以make并运行了,但是不会有什么效果,因为我…
先来看一个简单的Makefile,我们把它放在目录/boot下,可以用来编译boot.bin和loader.bin. # Makefile for boot # Programs, flags, etc. ASM = nasm ASMFLAGS = -I include/ # This Program TARGET = boot.bin loader.bin # All Phony Targets .PHONY : everything clean all # Default starting…
现在把esp.GDT等内容放进内核中,我们现在可以用C语言了,只要能用C,我们就避免用汇编. 下面看切换堆栈和GDT的关键代码: ; 导入函数 extern cstart ; 导入全局变量 extern gdt_ptr [SECTION .bss] StackSpace resb 2 * 1024 StackTop: ; 栈顶 ; 把 esp 从 LOADER 挪到 KERNEL mov esp, StackTop ; 堆栈在 bss 段中 sgdt [gdt_ptr] ; cstart() 中…
现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了. 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段.一个0~4GB的可读写段和一个指向显存开始地址的段: ; GDT ; 段基址 段界限, 属性 LABEL_GDT: Descriptor 0, 0, 0 ; 空描述符 LABEL_DESC_FLAT_C: Descriptor 0, 0fffffh, DA_CR|DA_32|DA_LIMIT_4K ;0-4G LABEL_DESC_FLAT_RW: D…
Loader要做两项工作,我们先来做第一项,把内核加载到内存: 1.加载内核到内存. 2.跳入保护模式. 首先编译无内核时: nasm boot.asm -o boot.bin nasm loader.asm -o loader.bin dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc sudo mount -o loop a.img /mnt/hgfs/ sudo cp loader.bin /mnt/hgfs/ -v sudo umoun…
导读:线上一台服务器专门做为公司内部apk打包服务,由于app的业务和功能与时俱增,apk打包需要依赖的资源越来越多,最近这几天每次apk打包的时候都会由于OOM导致打包失败.由于apk打包业务并不是线上业务,而是偶尔使用,频率基本上就是一周一次的样子.所以将业务迁移到其他的服务器或者新增一台服务器在成本上不可取,然后观察到swap的使用率一直都是100%,说明实际在打包过程中是有用到swap的,所以我打算将swap扩容,看能不能解决打包进程OOM的问题. 操作: dd if=/dev/zero…
hadoop 性能调优与运维 . 硬件选择 . 操作系统调优与jvm调优 . hadoop运维 硬件选择 1) hadoop运行环境 2)  原则一: 主节点可靠性要好于从节点 原则二:多路多核,高频率cpu.大内存, namenode 100万文件的元数据要消耗800M内存,内存决定了集群保存文件数的总量, resourcemanager同时运行的作业会消耗一定的内存. datanode 的内存需要根据cpu的虚拟核数(vcore) 进行配比,CPU的vcore数计算公式为=cpu个数 * 单…
本篇是为项目实战做准备,学习Linux是必备的,不然都不好意思叫全栈对吧?下面是一位资深大神写的文章,够详细,我也不用浪费时间再写了 原文链接:Ubuntu学习——第一篇 内容: 一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大家的存在”,是非洲传统的一种价值观. Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成…
原文地址:http://1130739.blog.51cto.com/1120739/1738791 由于CentOS 7出来不久,对于这个版本的系统安装与配置的教程较少,今天就索性介绍一下CentOS7.2系统的安装与配置. 获取安装镜像文件: 1.直接访问CentOS官方开源镜像网站,http://mirror.centos.org/ 从网站我们可以看到各个版本目录 2.进入到centos/目录,可以看到目前最新版7.2.1511版本 3.点击进入7.2.1511目录后,会发现isos目录,…
欢迎各位大佬访问我的 github ,跪求 star bestJavaer 大家好,我是 cxuan,我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我又花了一周的时间修订整理了一下这份面试题,这份面试题可以吊打市面上所有的操作系统面试题了,不是我说,是因为我系统查过,如果有不相信的大佬,欢迎狠狠的打我脸. 这份面试题有 43 道题,囊括了校招面试和社招面试,看完这一篇文章,保准你能和面试官侃侃而谈,增加进入大厂的几率! 话不多说,下面我们直接进入…
ELK和EFK是什么 ELK和EFK是四个开源产品的组合: Elasticsearch 一个基于Lucene搜索引擎的NoSQL数据库 Logstatsh 一个日志管道工具,接受数据输入,执行数据转换,然后输出数据 Filebeat 一个转发和集中日志数据的轻量级传送工具 Kibana 一个界面层,在Elasticsearch之上工作 关于Elasticsearch Elasticsearch: 权威指南 ElasticSearch 重要特性 分布式的实时文件存储,每个字段都被索引并可被搜索 实…
目 录 第1章 绪论    1 1.1 目标    1 1.2 适宜的读者    1 第2章 制作启动U盘    2 2.1 初级安装    2 2.2 启动分析    3 2.3 高级安装    13 2.3.1 分区    13 2.3.2 复制文件    16 2.3.3 修改MBR和PBR    17 2.3.4 启动分析    20 2.4 初级安装与高级安装的比较    21 第3章 硬盘分区    22 3.1 规划    22 3.2 操作    23 第4章 安装Windows…
安装环境: 操作系统:    Ubuntu 12.4 LTS 英文 数据库:        mysql5.5.32 web服务器: nginx1.4.1 首先, 添加git和nginx的ppa,并升级系统到最新. sudo apt-add-repository ppa:git-core/ppa sudo add-apt-repository ppa:nginx/stable Software Up to Date 然后, 安装vim,并设为默认编辑器. # Install vim and set…
安装环境: 操作系统:    Ubuntu 12.4 LTS 英文 数据库:        postgresql webserver: nginx 能够说到7.x的时候,GitLab的文档已经相当完好了!此文作为翻译和部分FAQ. 1. 安装依赖包 (1) 设置默认文本编辑器 使用Vim作为默认文本编辑器 sudo apt-get install -y vim sudo update-alternatives --set editor /usr/bin/vim.basic (2) 安装依赖 su…
实验环境为VMware虚拟机安装操作系统. 1.打开VMware Workstation 虚拟机,选择创建新的虚拟机: 2.选择linux-CentOS 64位操作系统: 3.为虚拟机命名,并选择安装位置: 4. 指定虚拟机存储方式,并设定磁盘大小: 5.完成虚拟机的创建: 6.导入linux-centOS7系统镜像 7.打开虚拟机: 8.进入开机页面: 9.进入centos7系统配置页面-选择系统语言: 10.安装信息摘要: 11.软件选择,这里选择最小化安装(节省系统资源,安装快捷): 12…
VMware 10.0.2 CentOs 6.3 VMware的安装以及CentOs的下载比较简单,这里不再描述 1.创建新的虚拟机 2.选择典型 3.选择稍后安装操作系统 4.选择如图所示 5.虚拟机名称和安装位置自定义 6.选择如图所示 7.直接点击完成 8.点击编辑刚刚新建的虚拟机 9.网络适配器选择NAT模式 桥接模式:外网也能ping同虚拟机,虚拟机相当于真实的一台机器,会占用ip地址 NAT模式:虚拟机只能和宿主机互通,并通过宿主机上网,外网无法ping同虚拟机 仅主机模式:虚拟机只…
官方提供3种方式部署Kubernetes minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. 官方文档:https://kubernetes.io/docs/setup/minikube/ kubeadm kubeadm可帮助你快速部署一套kubernetes集群.kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法.目前是Beta版. 官方文档:https://…
本文由  网易云发布. 作者:范欣欣 本篇文章仅限本站分享,如需转载,请联系网易获取授权. 操作系统这个话题其实很早就想拿出来和大家分享,拖到现在一方面是因为对其中各种理论理解并不十分透彻,怕讲不好:另一方面是这个问题好像一直以来都很少有人关注,这里算是给这个话题开个头.其实这几个参数前前后后看过好些次,但却一直没有吃透,前段时间趁着休假又把这些理论翻出来过了一遍,有了进一步的理解,这里权当整理梳理.下图是HBase官方文档上对操作系统环境的几点配置要求: 先不着急解释每个配置的具体含义,在这之…
终于又切回HBase模式了,之前一段时间因为工作的原因了解接触了一段时间大数据生态的很多其他组件(诸如Parquet.Carbondata.Hive.SparkSQL.TPC-DS/TPC-H等),虽然只是走马观花,但也受益良多.对视野.思维模式都有极其重要的作用,至少,扩展了大数据领域的对话圈. 这里也斗胆建议朋友能在深入研究一门学问的同时博览周边学问,相信必然会大有裨益. 来说正题,操作系统这个话题其实很早就想拿出来和大家分享,拖到现在一方面是因为对其中各种理论理解并不十分透彻,怕讲不好:另…
CENTOS6.5安装CDH5.12.1(一) 原创: Fayson Hadoop实操 2017-09-13 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.概述   本文档主要描述离线环境下,CentOS6.5操作系统部署CDH5.12.1企业版的过程.本安装文档主要分为4个步骤: 1.前期准备(包括hostname.关闭防火墙.关闭SELinux.时钟同步等) 2.安装Cloudera Manager Server 3.安装CDH集群 4.集群完整性检查(包括HDFS文件…