feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Linux

上一页 1 2 3 4 5 6 ··· 8 下一页

摘要:[plain]view plaincopy#!/bin/shmem=`free-m|awk'NR==2{print$2}'`ps-aux2>&1|sort-k4-r|awk'$4~/^[0-9]/&&$4>0{print$4,$11}'|awk'{print$1/100*mem""$2}'mem=$mem|sort-k2|awk'{a[$2]+=$1;b[$2]++;total+=$1;total++;}END{for(iina){t=i;gsub(/:|.*\//,"&q 阅读全文

posted @ 2012-07-05 15:57 feisky 阅读(490) 评论(0) 推荐(0) 编辑

摘要:关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈! 但是在讲如何定位系统性能瓶劲之前,请让我讲一下系统性能的定义和测试,因为没有这两件事,后面的定位和优化无从谈起。一、系统性能定义让我们先来说说如何什么是系统性能。这个定义非常关键,如果我们不清楚什么是系统 阅读全文

posted @ 2012-06-20 12:59 feisky 阅读(524) 评论(0) 推荐(0) 编辑

摘要:在linux中,对于img文件(例如,虚拟机的img文件),有时候需要将其挂载,以便修改其中的内容。能不能将它像iso文件一样挂载呢?其实方法很简单,只需要两步:#kpartx -av xxx.img得到如下信息:add map loop0p1 ...此时只需要mount loop0p1即可#mount /dev/mapper/loop0p1 /mntOK,这样就可以进入mnt对img文件的内容进行修改了要卸载也很简单,同样是两步:umount /mntkpartx -d xxx.img转自:http://netessays.blogbus.com/logs/149269677.html 阅读全文

posted @ 2012-05-31 10:15 feisky 阅读(3522) 评论(0) 推荐(0) 编辑

摘要:前不久因项目需要写了开机启动其他程序的shell脚本,因工作忙,调试完给了技术支持人员,也没去注意过。到后来,有几台服务器突然被重启了,这时候领导问,怎么开机启动的脚本没起作用,还被批了一顿,哎,做事虎头蛇尾,活该!然后去查,一直没查到原因,手动执行都是正确的,在排除了权限原因和脚本问题后,很郁闷,怎么放到开机启动项目中就无法执行了呢。于是去查linux开机启动过程信息。google下,看了下关于一些开机启动启的资料,发现了开机启动程序的级别为3.果断顺藤莫瓜,找到了这个目录 /etc/rc.d/rc3.d,进去一看恍然大悟。我的rc.local文件是在 /etc/rc.local中(网上都是 阅读全文

posted @ 2012-04-27 12:39 feisky 阅读(811) 评论(0) 推荐(0) 编辑

摘要:先以time为例:解决time命令输出信息的重定向问题time命令的输出信息是打印在标准错误输出上的,我们通过一个简单的尝试来验证一下。[root@web186 root]#time find . -name "mysql.sh" >1.txtreal 0m0.081suser 0m0.060ssys 0m0.020s[root@web186 root]#time find . -name "mysql.sh" 2>2.txt./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.s 阅读全文

posted @ 2012-04-27 11:20 feisky 阅读(3363) 评论(0) 推荐(0) 编辑

摘要:一个诡异的bash问题今天写的一个bash脚本运行发现:test.sh: 1: #!/bin/bash: not found本以为是由于在windows下编辑导致的问题,执行dos2unix之后问题依旧。后来想到用file命令查看,文件居然是UTF-8 Unicode (with BOM) text格式# file test.sh test.sh: UTF-8 Unicode (with BOM) text而正常的bash脚本格式应该为 Bourne-Again shell script text executable用vim -b test.sh删除开头的<feff>即可。 阅读全文

posted @ 2012-04-24 14:44 feisky 阅读(562) 评论(0) 推荐(0) 编辑

摘要:作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 “回收站”。在 Linux 上如果事先没有用别名(alias)修改默认的 rm 功能,rm 后文件就会丢失,幸运的是,在一般的删除文件操作中,Linux 并不会立即清空存储该文件的 block 内容,而只会释放该文件所占用的 inode 和 data block,Linux 上 rm 的过程其实就是将 inode bitmap 和 data block bitmap 中的相应标识设为空闲状态的过程,并不涉及到真正的数据,这也是为什么在 Linux 下删除大文件这么快速的原因,因为大文 阅读全文

posted @ 2012-04-16 10:54 feisky 阅读(569) 评论(0) 推荐(0) 编辑

摘要:背景由于Linux缓存机制的设计,系统对缓存的使用是非常狠的,所以经常会看到某些环境内存只剩几十兆了,而应用只用了不到一半。所以在计算可用内存的时候,一定要算上缓存的部分。通常方法,就是通过free命令首行free+cached+buffers计算,或者直接使用第二行的free字段。但这个方法有时仍然会造成比较大的误差,导致性能监控等方面的问题。比如系统中使用了大量的共享内存会造成多计算可用内存;再比如对大量的文件做了查询(find / ?!!!),会导致少计算可用内存。对于这点我在《说说free命令》中有详细的说明。这里就不再赘述了。SUSE11 SP1基于2.6.32内核,内核暴露了更多的 阅读全文

posted @ 2012-04-14 20:11 feisky 阅读(4454) 评论(0) 推荐(0) 编辑

摘要:如何从centos6.0升级到centos6.2首先替换默认源为163源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget http://mirrors.163.com/.help/CentOS6-Base-163.repomv CentOS6-Base-163.repo /etc/yum.repos.d/升级系统:yum makecacheyum update升级过程中报了一个key相关的错误,具体记不清了,重新执行yum update确定导入key即可。重启,确认更新成功:[r 阅读全文

posted @ 2012-04-10 20:59 feisky 阅读(432) 评论(0) 推荐(0) 编辑

摘要:查看进程14755(httpd)打开了哪些文件:localhost:~# lsof -p 14755COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEhttpd 14755 apache cwd DIR 8,1 4096 2 /httpd 14755 apache rtd DIR 8,1 4096 2 /httpd 14755 apache txt REG 8,1 332264 9241061 /usr/sbin/httpdhttpd 14755 apache DEL REG 0,9 34211 /dev/zerohttpd 14755 apache 阅读全文

posted @ 2012-04-06 13:52 feisky 阅读(1217) 评论(0) 推荐(0) 编辑

摘要:This article is written to address sometimes incorrect usage of the “dd” program to measure disk write performance on a VPS by some visitors of thelowendbox.comwebsite, and is originally based onthis question and my answer to it.Initially published on 2010-11-29.Q: What is the difference between the 阅读全文

posted @ 2012-04-01 10:30 feisky 阅读(433) 评论(0) 推荐(0) 编辑

摘要:问题引入:问题是我们重装了一台电脑之后,发现apache的日志里突然增加了很多服务时间超长的请求,如下面两条:** - - 4913229 11227 [29/Mar/2012:09:59:58 +0800] "GET******* - - 4793564 9846 [29/Mar/2012:09:59:58 +0800] "GET *****请求服务时间都在4s以上!这绝对无法忍受啊!分析过程:但是,当我们:* 手动访问这台服务器之后,发现基本上请求都是正常响应的;* 从前端反向代理的日志来看,服务时间也是正常的;那这样推断,真相只有一个,那就是apache的日志时间记录 阅读全文

posted @ 2012-03-30 21:27 feisky 阅读(850) 评论(0) 推荐(0) 编辑

摘要:首先找到进程idps aux | grep process会在输出结果里面找到进程idpwdx process-id 阅读全文

posted @ 2012-03-12 21:11 feisky 阅读(639) 评论(0) 推荐(0) 编辑

摘要:1. 找出CPU占用率高的线程: ps H -eo user,pid,ppid,tid,time,psr,%cpu,cmd --sort=%cpu参数'H'显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序2. 找出耗iowait的进程先停掉syslogservice syslog stop打开block dump:echo 1 > /proc/sys/vm/block_dump多次运行,查看结果dmesg | egrep "READ|WRITE|dirtied" | egr 阅读全文

posted @ 2012-03-11 16:13 feisky 阅读(2432) 评论(0) 推荐(0) 编辑

摘要:1. top命令查看进程对应的物理CPU: 执行top后,按f,再选择j: P Last used cpu (SMP) ,再按回车回到top界面2. ps命令查看: ps -eLo user,pid,ppid,psr,%cpu,cmd | awk '$4==6{print $0}' 其中,6为指定的物理CPU 阅读全文

posted @ 2012-03-11 16:11 feisky 阅读(430) 评论(0) 推荐(0) 编辑

摘要:引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..."对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open file","connect to XXX time out"),而非出错的原因。错误日志不能满足定位问题的需求,我们能从更“深层”的方面着手分析吗?程序或命令的执行,需要通过 阅读全文

posted @ 2012-03-02 17:57 feisky 阅读(561) 评论(0) 推荐(0) 编辑

摘要:xmllint --format ugly.xml > pretty.xml 阅读全文

posted @ 2012-02-15 20:56 feisky 阅读(337) 评论(0) 推荐(0) 编辑

摘要:最小立异原则如有可能,尽量允许用户将接口功能委派为熟悉的程序来完成不能委派时,那就效仿接口设计评估 简洁:一个事务处理需要的动作时间及复杂度需要较低的上限 表现力: 接口可以触发相当广泛的行为 易用: 易用性同要求用户需要记忆的东西成反比 透明: 用户在使用接口的时候,几乎没有什么问题、数据或程序的相关状态需要记忆 脚本化能力:很容易被其他程序调用CLI和可视接口之间权衡 CLI:丰富的表现力,高度的脚本化能力,易用性低(需要费劲的记忆),透明度通常也较低 GUI:易用,不能脚本化,处理规模大的问题需要机械性重复操作 长远来看,为了既能服务一般用户,又能服... 阅读全文

posted @ 2012-02-12 13:18 feisky 阅读(879) 评论(0) 推荐(0) 编辑

摘要:什么应是可配置的Unix提倡建立机制而把策略决定权留给用户,往往会导致选项过多。不应该配置:能够可靠自动检测的东西;用户不应该看到优化开关;能用脚本包装器或简单管道完成的任务,就不要使用配置开关实现。配置放在哪里/etc目录:管理员设置的系统级选项支持#开头的注释不去别隐匿的空白符多个连续的空行视为单个空行词法上把文件视作简单的用空白符分割的标记序列,或多行标记,但支持以字符串语法对内嵌空白符的... 阅读全文

posted @ 2012-02-07 21:58 feisky 阅读(517) 评论(0) 推荐(0) 编辑

摘要:windows下很多人都使用source insight 编写和查看代码。linux下可以使用VIM,刚开始会觉得VIM像windows下的记事本,而如果使用得当,它并不比source insight 逊色。 在这里,我会尽我所能细致地讲清楚如何把vim变成source insight, 然而你仍然需要积极地思考,并且必须自己去摸索一些东西。 为了避免过于罗嗦,我把基础的部分放在后面,如果你越看越觉得太简单了,那么本文并不适合你;如果看完前面的仍有疑问或者看不懂前面说的是什么东西,不用担心,后面会有一些必备的知识介绍。一、用好系统自带软件ctags大部分的unix系统都有ctags软件,它.. 阅读全文

posted @ 2012-02-07 21:05 feisky 阅读(28540) 评论(1) 推荐(2) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页
无觅相关文章插件,快速提升流量