Linux
文章平均质量分 84
zhaofuguang
这个作者很懒,什么都没留下…
展开
-
Linux下对LVM逻辑卷分区大小调整
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:########################################################特别注意的是:resize转载 2020-06-15 13:28:58 · 696 阅读 · 0 评论 -
glibc中malloc的详细解释
glibc中的malloc实现:The main properties of the algorithms are:* For large (>= 512 bytes) requests, it is a pure best-fit allocator, with ties normally decided via FIFO (i.e. least recently used转载 2014-06-30 19:50:46 · 508 阅读 · 0 评论 -
linux下proc里关于磁盘性能的参数
我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30 秒,服务器就会遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。后来上网查了一下资料,通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少。这样可以把尖峰的写操作削平成多次写操作。以这种方式执行的效率比较低,因为内核不太有机会组合写操作。但对于繁忙的服务器,写操作将更一致地进行,并将极大地改进交互式转载 2014-06-30 17:24:43 · 620 阅读 · 0 评论 -
Linux网卡中断使单个CPU过载
Linux内核在性能方面已经经历了很长一段时间的考验,尤其是2.6/3.x内核。然而,在高IO,尤其是网络方面的 情况下,对中断的处理可能成为问题。我们已经在拥有一个或多个饱和1Gbps网卡的高性能系统上发现过这个问题,近来在有许多小包并发(大约 10000packets/second)超载的虚拟机上也发现了这个问题。 原因很清楚:在最简单的模式中,内 核通过硬件中断的方式来处理每个转载 2014-06-30 17:57:15 · 511 阅读 · 0 评论 -
GCC 提供的原子操作
gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type __sync_fetch_a转载 2014-01-09 14:54:47 · 478 阅读 · 0 评论 -
Linux常用性能调优工具索引
前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到Linux常用性能调优工具, 见下图:转载 2014-08-18 14:53:29 · 449 阅读 · 0 评论 -
Shell调试篇
检查语法-n选项只做语法检查,而不执行脚本。sh -n script_name.sh启动调试sh -x script_name.sh进入调试模式后,Shell依次执行读入的语句,产生的输出中有的带加号,有的不带,如下。带加号表示该条语句是Shell执行的。不带加号表示该语句是Shell产生的输出。+ array=(1 2 3 4 5)+ for i转载 2014-07-24 12:11:30 · 371 阅读 · 0 评论 -
samba配置
1. command yum install samba 直接调用apt-get来安装samba2. samba配置 samba配置有两点,配置本地用户名和密码,配置共享目录 第一点,本地用户名和密码,需是unix的用户名,没有可以使用adduser [用户名]建立,使用passwd 改变用户名密码,而samba配置的用户名使用:samba -a [user]原创 2014-03-18 17:08:44 · 355 阅读 · 0 评论 -
Linux系统信息查看命令
系统# uname -a #查看内核/操作系统/CPU信息# head -n 1 /etc/issue #查看操作系统版本# cat /proc/cpuinfo #查看CPU信息# hostname #查看计算机名# lspci -tv #列出所有PCI设备# lsusb -tv #列出所有USB设备# lsmod #列出加载的内核模块转载 2014-06-30 16:28:48 · 288 阅读 · 0 评论 -
绑定进程与CPU
在SMP情况下,Linux调度器有负载均衡机制,将一个进程在不同CPU之间进行迁移。因此,一个进程运行在哪个CPU上是不确定的,但有时候为了测试数据方便,却有这样的需求,就是将某个进程绑定到一个CPU上运行。怎么办呢?如果你有源代码,那么很简单,在代码里面加上sched_setaffinity()函数就可以了,但如果没有呢?没关系,我们有秘密武器,那就是taskset命令。转载 2014-06-30 17:57:08 · 570 阅读 · 0 评论 -
GDB调试手册
Linux 包含了一个叫gdb 的GNU 调试程序。gdb 是一个用来调试C和C++程序的强力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是 gdb 所提供的一些功能:它使你能监视你程序中变量的值、它使你能设置断点以使程序在指定的代码行上停止执行、它使你能一行行的执行你的代码。在命令行上键入gdb并按回车键就可以运行gdb 了。(Windows需要安装MinGW或者CygW原创 2013-10-18 14:56:11 · 957 阅读 · 0 评论 -
Linux - vmstat iostat详解
vmstat -n 3 (每个3秒刷新一次) procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----r b swpd free buff cache si so bi bo in cs us sy id wa1 0 144 186164 105252 2386848 0 0 18 166 8原创 2013-10-18 14:55:46 · 586 阅读 · 0 评论 -
Linux tcpdump命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc转载 2013-10-18 15:47:32 · 410 阅读 · 0 评论 -
linux shmget
#include #include#include#include #include #include #include #include int main(int agrc, char *argv[]){ key_t key = 888999; int shmid = shmget(key, 1024, IPC_CREAT | IPC_原创 2014-05-08 17:52:52 · 1232 阅读 · 0 评论 -
epoll
1、如果fd被注册到两个epoll中时,如果有事件发生则两个epoll都会触发事件。2、如果注册到epoll中的fd被关闭,则其会自动被清除出epoll监听列表。3、如果多个事件同时触发epoll,则多个事件会被联合在一起返回。4、epoll_wait会一直监听epollhup事件发生,所以其不需要添加到events中。5、为了避免大数据量io时,et模式下只处理一个fd,其他fd被饿死的情况发生原创 2013-10-18 14:55:36 · 705 阅读 · 0 评论 -
linux 路由表 的一些相关资料
一、原理说明1、路由表(table)从0到255进行编号,每个编号可以对应一个别名,编号和别名的对应关系在linux下放在/etc/iproute2/rt_tables这个文件里,一般0编号的table对应的别名为upspec,255编号对应的别名为local,254和253对应的别名分别为main和default,我们通常用route命令配置和查看的路由表信息为别名为main的路由表信息。转载 2014-04-11 11:35:32 · 817 阅读 · 0 评论 -
Linux系统调用列表
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用转载 2014-06-30 19:37:04 · 325 阅读 · 0 评论 -
Linux 的虚拟文件系统
1 引言Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的 操作可以跨文件系统而执行。如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘;而这样的操作涉及到两个不同转载 2014-06-30 19:48:04 · 392 阅读 · 0 评论 -
Linux IO 之 系统缓存(pdflush & dirty page) 及 扩展知识
[原文]http://www.phpfans.net/article/htmls/201010/MzEwNzAx.html延伸阅读:cgroup限制用户IOPS,共用文件系统,引发的思考:http://blog.163.com/digoal@126/blog/static/163877040201571403648184/系统缓存相关转载 2017-02-07 18:00:15 · 4790 阅读 · 0 评论 -
linux下proc里关于磁盘性能的参数
目录(?)[-]一26内核下procsysvmdirty_ratioprocsysvmdirty_background_ratioprocsysvmdirty_writeback_centisecsprocsysvmdirty_expire_centisecs二24内核下我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30 秒,服务器就会转载 2017-02-08 16:48:51 · 357 阅读 · 0 评论 -
Linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info原创 2013-10-18 14:56:41 · 685 阅读 · 0 评论 -
Linux 内核揭密
https://www.gitbook.com/book/xinqiu/linux-insides-cn/detailshttps://www.gitbook.com/book/xinqiu/linux-insides-cn/details转载 2017-02-17 17:10:40 · 484 阅读 · 0 评论 -
awk 用法(使用入门)
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域转载 2016-03-11 10:48:16 · 1373 阅读 · 0 评论 -
sort命令k选项
有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思。今天,我们就来搞定它—-k选项!1 准备素材$ cat facebook.txtgoogle 110 5000baidu 100 5000guge 50 3000sohu 100 4500第一个域转载 2017-02-24 17:45:46 · 333 阅读 · 0 评论 -
cmake使用示例与整理总结
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]本文代码托管于github cmake_democmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMA转载 2017-08-04 15:00:23 · 388 阅读 · 0 评论 -
Makefile经典教程
支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现转载 2017-10-16 16:40:23 · 235 阅读 · 0 评论 -
Linux网卡配置与绑定
Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。相关的配置文件 /ect/hosts 配置主机名和IP地址的对应 /etc/sysconfig/network 配置主机名和网关 /etc/sysconfig/networ转载 2016-05-30 11:28:47 · 1095 阅读 · 0 评论 -
xmanager root登录
把Ubuntu安装在虚拟机里,每次启动都要输入账号密码,为了省事,让root自动登陆,如下: 1. 为 root 账户修改一个密码; 在终端下输入 ” sudo passwd root ” 命令,终端会提示输 入当前账户密码,正确输入后,再输入两次你想要为 root 账户赋予的密码即可。 2. 设置 root 账户自动登录; (1 ) 查看 /etc/gdm/转载 2016-04-17 16:00:40 · 1108 阅读 · 0 评论 -
Linux命令学习手册-objcopy命令
objcopy [选项]... 输入文件 [输出文件] [功能] 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换。 [描述] objcopy工具使用BFD库读写目标文件,它可以将一个目标文件的内容拷贝到另外一个目标文件当中。objcopy通过它的选项来控制其不同的动作,它可以将目标文件拷贝成和原来的文件不一转载 2014-09-02 16:38:48 · 656 阅读 · 0 评论 -
time,gettimeofday,clock_gettime
time()提供了秒级的精确度1、头文件 2、函数原型time_t time(time_t * timer) 函数返回从UTC1970-1-1 0:0:0开始到现在的秒数用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。#include #include int main(void){转载 2014-06-16 10:22:58 · 449 阅读 · 0 评论 -
linux seqlock & rcu 浅析
在linux内核中,有很多同步机制。比较经典的有spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)、等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rcu应该可以不算在经典之列,它们是两种比较有意思的同步机制。seqlock(顺序锁)用于能够区分读与写的转载 2013-12-17 09:35:39 · 932 阅读 · 0 评论 -
备份一下我的.vimrc
网上流行的一个版本 view plaincopy to clipboardprint?""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设原创 2013-10-18 14:54:57 · 453 阅读 · 0 评论 -
Linux 中直接 I/O 机制的介绍
简介: 对于传统的操作系统来说,普通的 I/O 操作一般会被内核缓存,这种 I/O 被称作缓存 I/O。本文所介绍的文件访问机制不经过操作系统内核的缓存,数据直接在磁盘和应用程序地址空间进行传输,所以该文件访问的机制称作为直接 I/O。Linux 中就提供了这样一种文件访问机制,对于那种将 I/O 缓存存放在用户地址空间的应用程序来说,直接 I/O 是一种非常高效的手段。本文将基于 2.6.18原创 2013-10-18 14:55:17 · 1408 阅读 · 0 评论 -
Linux - ss命令详解
ss -l 显示本地打开的所有端口ss -pl 显示每个进程具体打开的socketss -t -a 显示所有tcp socketss -u -a 显示所有的UDP Socektss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接ss -o state established '( dport =原创 2013-10-18 14:55:44 · 1541 阅读 · 0 评论 -
GCC的内嵌汇编语法 AT&T汇编语言语法(一)
http://hi.baidu.com/hilyjiang/blog/item/7db5077a8180dbec2e73b380.htmlhttp://blog.chinaunix.net/u3/93809/showart_1890394.html开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限 制,使原创 2013-10-18 14:56:04 · 460 阅读 · 0 评论 -
Linux下原生异步IO接口Libaio的用法
Linux下原生异步IO接口Libaio的用法Posted on June 15, 2011 by Jian Zhoulibaio是linux下原生的异步IO接口。网上对其使用方法讨论较少,这里做个简单说明。libaio的使用并不复杂,过程为:libaio的初始化,io请求的下发和回收,libaio销毁。一、libaio接口libaio提供下面五个主要API函数:int io_setup(int原创 2013-10-18 14:56:16 · 8425 阅读 · 0 评论 -
Linux快捷键
原文地址:http://os.51cto.com/art/201003/186665.htm Linux快捷键是对于电脑使用的玩家常用的,然后我就学习及深入的研究Linux快捷键,在这里和大家一起探讨Linux快捷键的使用方法,希望对大家有用。大家最常见的windows系统给大家提供了很多的快捷键。在控制台/虚拟终端下 1. ctrl-alt-delete -关闭计算机 2. alt-fn原创 2013-10-18 14:56:35 · 425 阅读 · 0 评论 -
Linux双网卡设置IP属于同一网段的问题
写在前面:经常遇到客户将板卡上的两个网络设备的IP地址设置为同一网段的情况,我的解释是,不能设置为同一网段,但是我不知道这个说法到底是根据什么,查了很多资料也没找到明确的说法,但是下面这个实验能够说明一些现象的原因。初步做了一下实验: 服务器为RHEL5 双网卡,eth0为234,eth1为233,我本地客户机为172。RHEL:ifconfig如下:[root@server1 ~]# ifco原创 2013-10-18 14:56:33 · 16770 阅读 · 2 评论 -
Linux异步IO
Linux? 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,我们原创 2013-10-18 14:55:15 · 487 阅读 · 0 评论 -
CentOS yum的详细使用方法
yum是什么yum = Yellow dog Updater, Modified 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题yum特点可以同时配置多个资源库(Repository) 简洁的配置文件(/etc/yum.conf 自动解决增加或删除rpm包时遇到的倚赖性问题 使用方便 保持与RPM数据库的一致性yum安装CentOS自带(原创 2013-10-18 14:56:06 · 370 阅读 · 0 评论