
linux
souy_c
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux io流:块层
块层(Block Layer)对内核来说,管理块设备要比管理字符设备复杂得多。因为块设备访问时,需要在介质的不同区间前后移动,而字符设备访问时仅仅需要控制一个位置,就是当前位置。所以内核没有提供一个专门的子系统来管理字符设备,但是却有一个专门的子系统来管理块设备。这不仅仅是因为块设备的复杂度远远高于字符设备,更重要的原因是块设备的访问性能对系统的影响很大,对硬盘每多一分利用都会对系统的整体性能带来提升,其效果要远远比提高键盘的吞吐速度好得多。块设备上的操作涉及内核中的多个组成部分,内核块设备I/O流原创 2020-07-18 15:49:29 · 845 阅读 · 0 评论 -
linux io流:文件系统和BTRFS简介
Linux文件系统的体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的API函数,Linux就可以在多种存储设备上支持多种文件系统,这使得它拥有了与其他操作系统和谐共存的能力。文件系统概述文件是文件系统中最核心的概念,Linux中文件的概念并不局限于普通的磁盘文件,而是指由字节序列构成的信息载体,I/O设备、socket等也被包括在内。因为有了文件的存在,所以需要衍生出文件系统去进行组织和管理文件,而为了支持各种各样不同的文件系统,所以有了虚拟文件系统的出现。文件系统是一.原创 2020-07-18 15:43:28 · 1098 阅读 · 0 评论 -
RPM 文件安装,--nodeps 和--force参数使用
--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装...原创 2020-03-16 16:00:52 · 1439 阅读 · 0 评论 -
Linux Storage Stack Diagram v4版内核存储io堆栈逻辑图
版本为:Linux Storage Stack Diagram v4.10blk-mq(mq就是多队列的意思),第一个原形与2011年提出,并在2014年合并进Linux 3.13内核。block层在加入了blk-mq之后,发生了很大的变化。由于blk-mq的加入,在smp中能够有效利用多硬件队列的储存设备的高并发特性,之前io performance瓶颈在于储存设备,随着pci-e s...原创 2020-03-02 12:00:28 · 682 阅读 · 1 评论 -
linux 性能分析工具perf使用详解
1、perf安装 sudo yum install perf2、perf使用 Perf包含22种子工具的工具集,以下是最常用的5种:2.1 perf-list Perf-list用来查看perf所支持的性能事件,有软件的也有硬件的。 List all symbolic event types. perf list [hw | ...原创 2020-02-18 11:05:53 · 22791 阅读 · 0 评论 -
linux 网络性能工具iperf 使用总结
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。1、安装: 我是通过rpm包安装:yum localinstall xxx.rpm2、参数说明:-s 以server模式启动。#iperf3 -s-c host以client模式启动。host是server端地址。#ipe...原创 2020-02-17 14:02:21 · 1367 阅读 · 0 评论 -
编译qemu-kvm的RPM安装包
1、获取源码包:qemu-kvm-xxxxxxxxxx.src.rpm2、解压源码包:rpm -ivh xxx/qemu-kvm-xxx.src.rpm源码解压之后的源文件放在:[root@host10573621 rpmbuild]# ls -ltotal 80drwxr-xr-x 3 root root 4096 Jun 18 18:04 BUILDdrwxr-xr-x ...原创 2019-06-18 19:21:42 · 2824 阅读 · 2 评论 -
top命令
top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。top进入视图第一行:10:08:45—当前系统...原创 2019-06-18 19:42:04 · 123 阅读 · 0 评论 -
golang 编译时修改int和string行变量
1、修改string类型变量这种很常见利用-ldflags即可,例如设置版本号:正常编译:go build xxx/code/server编译时加入版本号:go build -ldflags '-X code/util.VERSION=xxx-xxx_Vxxx' xxx/code/server2、修改int类型变量可以利用编译标签-tags,例如有个变量x,在正...原创 2019-06-18 19:35:27 · 943 阅读 · 1 评论 -
Linux程序异常退出打印调用堆栈
/* * 程序异常终止时打印异常程序调用堆栈 * gcc -g -rdynamic BackTraceTest.c -o BackTraceTest * * 运行程序出现错误: * System error, Stack trace: * 0 ./BackTraceTest(SystemErrorHandler+0x77) [0x40095b] * 1 /lib64/libc.so...转载 2019-02-26 12:03:47 · 1149 阅读 · 0 评论 -
gcc和g++编译器的区别
对于.c文件gcc当做c语言处理,g++当做c++处理;对于.cpp文件gcc和g++均当做c++处理; g++编译时实际上是调用gcc进行编译; gcc不能自动链接库文件,一般用g++来链接库文件,非要用gcc的话,一般使用gcc -lstdc++命令; extern “c”对于gcc和g++没有区别; 实际使用时只需安装gcc和g++中的一个就行了,如果使用gcc,编译直接用gcc就行...转载 2018-12-17 19:52:00 · 249 阅读 · 0 评论 -
go语言实现rbtree,性能还算不错
package rbtreetype Iterator func(i Item) bool// Ascend will call iterator once for each element greater or equal than pivot// in ascending order. It will stop whenever the iterator returns false...原创 2018-12-17 19:49:01 · 529 阅读 · 0 评论 -
open 函数中的O_DIRECT和O_SYNC的区别
In a perfect world, there would be no operating system crashes, power outages or disk failures, and programmers wouldn't have to worry about coding for these corner cases. Unfortunately, these failure...原创 2018-10-23 15:13:29 · 4793 阅读 · 0 评论 -
iostat、mpstat、sar、vmstat命令使用方法及举例说明
一、iostatiostat用于输出CPU和磁盘I/O相关的统计信息.不加选项执行iostat[patrickxu@vm1 ~]$ iostatLinux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1) 06/11/2017 _x86_64_ (8 CPU)avg-cpu: %user %nice %system %iowait...原创 2018-09-17 10:55:20 · 986 阅读 · 0 评论 -
FIO常用配置/vdbench 安装
举例说明:./fio --bs=64K --iodepth=32 --ioengine=libaio --rw=rw --time_based --runtime=1h --direct=1 --name=test --filename=/dev/volx --numjobs=1 --continue_on_error=io常用参数说明bsrange=512-2048 //数据块原创 2017-12-28 21:50:46 · 3629 阅读 · 1 评论