Tag Archives: OS
使用awk进行分类汇总
adam@adam-desktop:~$ cat test.txt round1 peter 100 round1 adam 20 round1 alice 50 round2 peter 20 round2 adam 50 round2 alice 30 round3 peter 20 round3 mike 50 round3 jack 80 adam@adam-desktop:~$ awk ‘{scores[$2]+=$3} END {for (i in scores) print i, scores[i]}’ test.txt peter 140 mike 50 jack 80 adam 70 alice 80
Linux内存管理参数
vfs_cache_pressure: 该文件表示内核回收用于directory和inode cache内存的倾向;缺省值100,越小内核倾向于保留directory和inode cache min_free_kbytes: 该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。 swapiness值,缺省60,数字越大操作系统越倾向使用swap。 参考资料: Linux性能优化的两个重要参数(参考) oracle&linux文件系统cache RHEL 4 性能优化
[转]Linux Hugepages
原文地址:Linux Hugepages,为方便阅读我把内容顺序稍作调整,把计算Hugepages的脚本放到了最后。 Hugepages是从Linux kernal 2.6后被引入的,其目的是使用更大的memory page size以适应越来越大的系统内存。 在我上大学那会,买一条64M 133Mhz的内存(对,你没看错,64M)价格为500多人民币,而现在4G 1600Mhz的内存的价格也就500多。 计算机硬件的发展速度太快了,所以操作系统的一些配置也要相应的随之改变。 在Linux下,默认的page size大小为4k。显然对于现在的SGA比较大的数据库系统来说,4k的page size有点太小了。 我们来看看两者之间有什么区别 1. Page Table大小 Page Table是用来存放虚拟内存也和物理内存页对应关系的内存结构。因为page size较小,所以相应的改内存结构也会比较大。 而Hugepages的常见page size为2M,是4k size的500倍,所以可以大大减小page table的size。 我们来看两个例子: 这是一个没有配置Hugepage的系统,系统内存128G,pagetable大小大约为4G。 cat /proc/meminfo MemTotal: 132086880 kB PageTables: 4059612 kB 这是配置了Hugepage的系统,系统内存96G, PageTable大小仅为78M MemTotal: 98999880 kB PageTables: 79916 kB 2. 大大提高了CPU cache中存放的page table所覆盖的内存大小,从而提高了TLB命中率 进程的虚拟内存地址段先连接到page tables然后再连接到物理内存。所以在访问内存时需要先访问page tables得到虚拟内存和物理内存的映射关系,然后再访问物理内存。 CPU cache中有一部分TLB(Translation Lookaside Buffer)用来存放部分page table以提高这种装换的速度。因为page [...]
linux命令学习2
排序: sort -n -k 1,-n表示按照数字排序,-k 1表示按照第一列排序,-t后面指定分隔符 删除第一行: sed 1d ps命令直接排序: ps aux –sort=rss awk汇总: awk ‘BEGIN {total = 0} {total += $6} END {print total} ‘ 2013-08-23追加 输出指定行: sed -n ’15q;11,14p’ test.txt
Shortcuts in linux shell
常用快捷键: 光标移动 Ctrl+a 移动到行首 Ctrl+e 移动到行尾 Ctrl+左右箭头 以单词为单位移动光标(在ssh secure client中不生效) Esc+b 移动到当前单词的开头 Esc+f 移动到当前单词的结尾 删除 Ctrl+d 删除当前光标字母 Ctrl+h 删除当前光标之前的字母 Ctrl+u 删除至行首 Ctrl+k 删除至行首 Ctrl+w 删除至所在单词第一个字母 Alt-BACKSPACE 类似Ctrl+w,往前删除至于第一个非字母的字符 复制和粘贴,包括鼠标操作 Ctrl+y 粘贴上面删除操作的内容 双击鼠标左键 复制 单机鼠标中键 粘贴 其它编辑操作 Ctrl+x+u 还原上次操作 Ctrl-_ 作用同上,注意是下划线, Alt+r 还原对当前命令行的所有操作 Ctrl+x+x 在当前光标和行首进行切换 Alt+u 将当前光标至单词尾转换为大写 Alt+l 将当前光标至单词尾转换为小写 Alt+c 将当前光标至单词尾转换为首字母大写 Ctrl+t 交互当前光标和前字母 Esc+t 交互当前光标所在单词和前单词 查找 [...]
[转]手工释放linux内存
原文地址:手工释放linux内存——/proc/sys/vm/drop_caches 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。 一、通常情况 先来说说free命令: 引用 [root@server ~]# free -m total used free shared buffers cached Mem: 249 163 86 0 10 94 -/+ buffers/cache: 58 191 Swap: 511 0 511 其中: 引用 total 内存总数 used 已经使用的内存数 free 空闲的内存数 shared 多个进程共享的内存总额 buffers Buffer Cache和cached Page Cache 磁盘缓存的大小 -buffers/cache 的内存数:used – buffers – cached +buffers/cache 的内存数:free + [...]
杀掉用户连接oracle进程的脚本
ps -ef | grep oracle | grep LOCAL=NO | grep -v grep | wc -l ps -ef | grep oracle | grep LOCAL=NO | grep -v grep | awk ‘{print $2}’ | xargs kill -9 参考资料: alter index rebuild online引发的血案
SHMALL and SHMMAX on Linux
shmall 是全部允许使用的共享内存大小 shmmax 是单个段允许使用的大小 这两个可以设置为内存的 90% 查看内存Page的大小 adam@adam-desktop:~$ getconf PAGE_SIZE 4096 查看目前的内存参数设置 方法一: adam@adam-desktop:~$ ipcs -l —— Shared Memory Limits ——– max number of segments = 4096 max seg size (kbytes) = 2097152 max total shared memory (kbytes) = 8388608 min seg size (bytes) = 1 —— Semaphore Limits ——– max number of arrays = [...]
LVM初学
先理解一下基本概念 物理卷(PV): 通常是标准分区 卷组(VG): 可以把卷组看作是由一个或多个物理卷所组成的存储器池 逻辑卷(LV): 在LV上就可以建立文件系统了。 主要创建过程: 1. 把分区格式化成8E,LVM分区类型 2. 创建PV: pvcreate /dev/hda5 3. 创建VG: vgcreate main /dev/hda5 4. 创建LV: lvcreate -L8G -nlv_home main 5. 创建文件系统:mkreiserfs /dev/main/lv_home 参考资料: IBM的两篇文章:通用线程: 学习 Linux LVM,第 1 部分 通用线程:学习 Linux LVM,第 2部分 ROBBIN的文章:LVM – 很好很强大 ,里面的评论更值得看一下。 ReiserFS文件系统的介绍:实战ReiserFS文件系统