早于windows 2008 的windows系统,2010年以前的linux系统,第一个分区的扇区是磁盘第63扇区,并且扇区尺寸是是512byte,这个是历史的原因,硬盘必须将cylinder / head / sector (CHS) 信息报告给BIOS,这个信息在现代的操作系统是无意义的,但是磁盘依然报告给bios每个磁盘轨道有63个扇区,因此操作系统依然将第一个分区的开始位置放置到第一个磁盘轨道上,在第63个扇区开始。
早期硬盘每个扇区以512字节为标准。新一代硬盘扇区容量为4096个字节,也就是所说的4k扇区。 硬盘标准更新,但操作系统一直使用的是512字节扇区的标准,所以硬盘厂商为了保证兼容性,把4k扇区模拟成512字节扇区。 通常文件系统的块(簇)是512字节的倍数,新的系统基本上都设成了4k的倍数。比如Linux的簇一般也是4k。 簇到扇区的映射关系变成了 簇(4k)->512B扇区->4k扇区,这就可能造成簇到扇区映射错位。
1、背景:为什么要 4K 对齐 簇是系统在硬盘上读写文件时的单位,是一个数据块(逻辑概念)。而扇区是硬盘划分的最小单位值,就是簇(数据块)占用的地方(物理概念)。NTFS对于大于2GB的分区,默认簇大小为8个扇区(4KB)。 绝大多数的机械硬盘默认是512字节的扇区,采用的是DRAM作为存储介质; 而机械硬盘,无论是SLC颗粒还是MLC颗粒,都属于NAND闪存存储单元。 这种硬盘的扇区是4K,这就是4K的由来。 NTFS格式有一个特性,那就是起始簇的位置! NTFS分区起始位置不是从0开始,而是从L
注意:inode号是磁盘格式化的时候就自动按一定的比例4k:1分配好了,当创建一个文件是就会拿一个inode给这个文件使用。inode里面存的是文件的相关属性比如大小,权限,属组和存在磁盘的位置,如果创建文件提示空间不够,但是df查看磁盘空间的时候,发现还有空间,但是就是创建不了,这个时候就应该是inode被占满了,可以通过删除文件来回收inode
很久以前喜欢捣鼓电脑啊外设什么的,却也没有搞出什么名堂。经常见到标题里的一些术语,却也只是一知半解。最近在复习操作系统,对以往的瞎捣鼓小有感触和总结。故写下此文。
一个多月前,我写了一篇关于Linux的问题,在这个问题中,播放视频会导致处理器使用率猛增,从而显著增加热量输出,从而导致笔记本电脑中的风扇大声旋转。此行为是Linux特有的,因为在Windows中使用同一台笔记本电脑时不会发生这种情况。
从Android Q引入动态分区,到Android R/S在动态分区之上增加虚拟分区管理, OTA升级时需要对分区变更进行处理
昨天下午,旁边的同事在学习Linux系统中的虚拟地址映射(经典书籍《程序员的自我修养-链接、装载与库》),在看到6.4章节的时候,对于一个可执行的ELF文件中,虚拟地址的值百思不得其解!
1 1K/2K/4K 在数字技术领域,通常采用二进制运算,而且用构成图像的像素数来描述数字图像的大小。由于构成数字图像的像素数量巨大,通常以K来表示210即1024,因此:1K=210=1024,2K=211=2048,4K=212=4096。 在数字电影应用中,通常2K图像是由2048×1080个像素构成的,其中2048表示水平方向的像素数,1080表示垂直方向的像素数;4K图像是由4096×2160个像素构成的,其中4096表示水平方向的像素数,2160表示垂直方向的像素数。在实际的数字母版制作和数字放
windows和Linux系统格式 在分区后,磁盘需要格式化 Windows中,有NTFS、fat格式,其中fat格式基本已经不用(过时) Linux中,centos7支持xfs、ext4、ext3、ext2、nodev proc、nodev devpts、iso9660、vfat、hfs、hfsplus [root@localhost ~]# cat /etc/filesystems //查看centos7所支持的系统格式 xfs //系统默认的支持的格式 ext4 ext3 ex
云平台客户的服务器可能会随着业务量的不断增长造成磁盘空间不足的情况,比如:共享文件服务器硬盘空间不足,在这个时候就需要增加磁盘空间,来满足线上的业务;又或者我们在使用linux的过程中, 有时会因为安装系统时分区不当导致有的分区空间不足,而有的分区空间过剩的情况,都可以是使用fdisk分区工具来动态调整分区的大小;
存储的选型、规划与管理等工作一直以来都是日常系统运维工作中的重点。MBR与GPT两种类型的分区表的选择与使用则是在磁盘管理中需要根据应用场景来注或考虑的要点。结合笔者多年的运维工作经验,引发了对这些问题的一些思考,借此文进行一些分享。
while true;do clear;date;for i in `ps --no-headers -o "pid" -C php-fpm`;do pmap $i|tail -1;done;sleep 1;done
Huge pages ( 标准大页 ) 和 Transparent Huge pages( 透明大页 )
磁盘格式化 Centos7支持的文件系统格式: [root@xie-02 ~]# cat /etc/filesystems xfs //Centos7默认的文件系统,根/和/boot都是xfs ext4 //Centos6 ext3 //Centos5 ext2 nodev proc nodev devpts iso9660 vfat hfs hfsplus * [root@xie-02 ~]# xfs和ext差不多 命令mount可查看分区的系统格式 格式化命令:mk
Java 19 中 Loom 终于 Preview 了,虚拟线程(VirtualThread)是我期待已久的特性,但是这里我们说的线程内存,并不是这种 虚拟线程,还是老的线程。其实新的虚拟线程,在线程内存结构上并没有啥变化,只是存储位置的变化,实际的负载线程(CarrierThread)还是老的线程。
固态硬盘就是用固态电子存储芯片阵列而制成的硬盘,相对于机械硬盘,固态硬盘的读写速度更快,但是固态硬盘的缺点是寿命不如机械硬盘。
今天发现虚拟机磁盘满了报警了,明明 50 GiB 可以用很久,怎么会这么快满了呢,找了各种数据库日志文件等半天始终找不出不对劲的文件。
大象为什么跳不高跑不快?因为它很重。HTTPS为什么访问比较慢为什么消耗CPU资源呢?同样也是因为它很重。HTTPS的重,体现在如下几方面:
这次天池 PolarDB 数据库性能大赛竞争相当激烈,眼睛一闭一睁成绩就会被血洗,最后榜单成绩是第三名,答辩翻车了,最终取得了大赛季军。云计算领域接触的是最前沿的技术,阿里云的 PolarDB 作为云原生数据库里程碑式的革新产品,也为这次比赛提供了最先进的硬件环境。
在 Linux 操作系统中,设备文件 是一种特殊类型的文件。这些文件绝大多数位于/dev 目录下,用来表示 Linux 主机检测到的某个具体的硬件设备。
Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题。本文就简单介绍一下这些命令。
在ZYNQ的地址分配中,可以将每一个Slave接口定义为一个存储器映射,其由一个或多个地址块(目前只遇到过一个地址块),存储区和子空间映射元素组成,可以通过从属接口访问存储器映射(典型的比如DMA应用)。
在用户的视角里,每个进程都有自己独立的地址空间,A进程的4GB和B进程4GB是完全独立不相关的,他们看到的都是操作系统虚拟出来的地址空间。但是呢,虚拟地址最终还是要落在实际内存的物理地址上进行操作的。操作系统就会通过页表的机制来实现进程的虚拟地址到物理地址的翻译工作。其中每一页的大小都是固定的。这一段我不想介绍的太过于详细,对这个概念不熟悉的同学回去翻一下操作系统的教材。
从计算机内存的角度思考C语言中的一切东东,是挺有帮助的。我们可以把计算机内存想象成一个字节数组,内存中每一个地址表示 1 字节。比方说我们的电脑有 4K 内存,那这个内存数组将会有 4096 个元素。当我们谈论一个存储地址的指针时,就当相于我们在谈论一个存储着该内存数组某个元素索引的指针。逆向引用某个指针,将会得到数组中该索引所指向的 值。这一切当然都是谎言。操作系统对内存的管理要远比这复杂。内存不一定连续,也不一定按顺序处理。但前面的类比是一种讨论C语言内存的简单方式。 如果对『指针』、『地址』和『逆向引
怎样去 DIY 一台主机呢?它可以满足自己的工作、游戏需求,还要颜值高、噪音小、最重要的是价格要便宜,质量要好。
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。LVM将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早,分析的版本为2.4.16,故出现的一些概念可能跟最新版本内核不同。
这篇文章标题已经写很久了,最近时间一直忙工作上事情,搁浅了很长一段时间。每次阅读到vpp对物理内存的管理这块都会绕过。终于鼓起勇气要来阅读一番。自己的理解也比较狭隘,比如通过/proc/pid/pagemap将虚拟地址查询到物理地址,本人也没有完全理解(参照其他人博客)。欢迎大家指正和交流。
引言:随着存储技术的不断进步,固态硬盘(SSD)成为近些年电脑存储的主流选择之一,其性能和耐用性都有显著的优势。不过,对于很多用户来说,如何合理地使用和管理固态硬盘依然存在疑惑。本文将详细介绍固态硬盘分区的详细步骤并列举一些常见问题,帮助大家更好的管理和使用固态硬盘。
BIOS全称:Basic Input Output System(基本输入输出系统)。它是一组固化到计算机主板上的一个ROM芯片程序 ,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。也是电脑在系启动过程中加载的第一个软件。BIOS可以说是连接软件与硬件的一座“桥梁”,是计算机启动过程中运行的第一个程序,主要功能是为计算机提供最底层的、最直接的硬件设置和控制,同时也只有在开机时才能进入设置界面。
以前经常遇到2C3G的vmware续集上环境上安装上vpp后,能直接运行,而每次当系统重启后总是报内存不足的问题。当把系统内存调整到4G后,就能正常运行了。一直也不清楚原因。最近工作中遇到一个问题在2c2g的环境上跑vpp,一段时间后,总是报内存不足。后来查询发现hugepage内存大小是1G,但是只使用了不到三分之一的大页内存。
本文最先发布在:https://www.itcoder.tech/posts/fdisk-command-in-linux/
内核的模块在分配资源的时候,为了提高效率和资源的利用率,都是透过slab来分配的。通过slab的信息,再配合源码能粗粗了解系统的运行情况,比如说什么资源有没有不正常的多,或者什么资源有没有泄漏。linux系统透过/proc/slabinfo来向用户暴露slab的使用情况。
硬件平台: 全志R/V/F/MR/H 系列芯片。软件平台: Tina v3.5 及后续版本。
传统的存储设备例如HDD,SSD,nvme,SAN LUNS等以blocks为单位提供存储功能。Block以字节为单位的可寻址存储单元。传统的硬盘的block大小是512字节。Newer设备通常是4K或者8K,但也可以选择逻辑/模拟的512字节的block。
由于新添加硬盘时要确定是对哪个盘进行分区挂载,以免误操作而造成数据损失。 使用 fdisk -l 进行查看。
目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。
一个像素占多大内存 多少字节取决于需要存储一个像素的多少信息,以及是否采用了压缩技术。 如果是非黑即白的二值图像,不压缩的情况下一个像素只需要1个bit。 如果是256种状态的灰度图像,不压缩的情况下一个像素需要8bit(1字节,256种状态)。 如果用256种状态标识屏幕上某种颜色的灰度,而屏幕采用三基色红绿蓝(RGB),不压缩的情况下一个像素需要占用24bit(3字节),这个就是常说的24位真彩色。
1,前提条件 实例处于 运行中 (Running) 或 已停止(Stopped) 状态。
示例: 分区为主分区 vdb2 时,使用脚本扩容直接报错了,提示非主分区(其实这里还是主分区,只不过不是第一个分区)
# 比如一本书,整本书就相当于一块磁盘或分区,书的前几页目录就相当于inode。每一页的文字、图片相当于一个block
【5】+5120M 表示这个主分区大小是5120M = 5G, 我们把这个10G的磁盘先拿出来5G作为第一个主分区
针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方。
基于前言中的内核配置,内核采用39位虚拟地址,因此可寻址范围为2^39 = 512G,采用(linux 默认为五级页表,另外还有PUD,P4D,由于本文只配置三级,其他两项不予罗列)3级页表结构,分别为:
Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。
前言: 乍一看,hugetlb和hugepage还挺像的,好像都是所谓的“大页”。然而,却很难说出来它们的差异。作者也是花了写时间翻翻代码,写了几个测试的例子,加上用工具据实测了几个关键参数,才明白。 分析: 1,page fault 用户大多数情况下申请内存的方法: a,使用malloc函数族,其实是glibc封装了brk/mmap。这种情况下分配的是虚拟内存,并没有直接分配物理内存。 b,调用brk分配,这种情况很少见,并只分配虚拟内存。 c,使用mmap,分配出来虚拟内存。如果flags带有MAP
领取专属 10元无门槛券
手把手带您无忧上云