June 23, 2011
详解Linux系统修改环境变量PATH路径的方法
"**关于PATH的作用: ** PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。\n**关于新增自定义路径: ** 现在假设你新安装了一个命令在/usr/locar/new/bin下面,而你又想像ls一样在任何地方都使用这个命令,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/locar/new/bin。你只需要一行bash命令export PATH=$PATH:/usr/locar/new/bin。这条命令的意思太清楚不过了,使PATH自增:/usr/locar/new/bin,既PATH=PATH+”:/usr/locar/new/bin”;通常的做法是把这行bash命令写到/root/.bashrc的 …"
June 21, 2011
centos下安装RabbitMQ消息队列
"这里环境为centos7 64位. 一。安装erlang\n[shell]su -c ‘rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm’ sudo yum install erlang[/shell]\n二。安装rabbitmq\n我们是用CentOS7(RHEL7也一样),可以从这里: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse 找到安装有erlang的RHEL7(CentOS同)软件仓库并安装:\n[shell] wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm\nsudo rpm –import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc sudo yum install …"
June 20, 2011
老生常谈: ulimit问题及其影响
"ulimit最初设计是用来限制进程对资源的使用情况的,因为早期的系统系统资源包括内存,CPU都是非常有限的,系统要保持公平,就要限制大家的使用,以达到一个相对公平的环境。以下是典型的机器默认的限制情况:\n$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 204800 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time …"
June 17, 2011
iostat来对linux硬盘IO性能进行了解
"以前一直不太会用这个参数。现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器\n$iostat -x 1 Linux 2.6.33-fukai (fukai-laptop) _i686_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.47 0.50 8.96 48.26 0.00 36.82 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 6.00 273.00 99.00 7.00 2240.00 2240.00 42.26 1.12 10.57 7.96 84.40 sdb 0.00 4.00 0.00 350.00 0.00 2068.00 5.91 0.55 1.58 0.54 18.80 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作 …"
June 16, 2011
Linux系统设置–ulimit
"**功能说明:**控制shell程序的资源。\n**语 法:**ulimit [-aHS][-c ][-d \u0026lt;数据节区大小\u0026gt;][-f \u0026lt;文件大小\u0026gt;][-m \u0026lt;内存大小\u0026gt;][-n \u0026lt;文件数目\u0026gt;][-p \u0026lt;缓冲区大小\u0026gt;][-s \u0026lt;堆叠大小\u0026gt;][-t ][-u \u0026lt;程序数目\u0026gt;][-v \u0026lt;虚拟内存大小\u0026gt;]\n**补充说明:**ulimit为shell内建指令,可用来控制shell执行程序的资源。\n参 数: -a 显示目前资源限制的设定。 -c 设定core文件的最大值,单位为区块。 -d \u0026lt;数据节区大小\u0026gt; 程序数据节区的最大值,单位为KB。 -f \u0026lt;文件大小\u0026gt; shell所能建立的最大文件,单位为区块。 -H 设定资源的硬性限制,也就是管理员所设下的限制。 -m \u0026lt;内存大小\u0026gt; 指定可使用内存的上限,单位为KB。 -n \u0026lt;文件数目\u0026gt; 指定同一时间最多可开启的文件数。 -p \u0026lt;缓冲区大小\u0026gt; 指定管道缓冲区的大小,单位512字节。 -s \u0026lt;堆叠大 …"
June 16, 2011
c语言socket编程常用函数2
"socket()函数\n#include #include int socket(int domain, int type, int protocol); domain应该设置为”AF_INET”,和上面数据结构 struct sockaddr_in 中一样,或者其它的type 告诉内容是SOCK_STREAM还是SOCK_DGRAM 类型,或者其它的. protocol 设置为0.\nsocket()只是返回以后在系统调用中可能用到的socket描述符,或者错误的时候返回-1.全局变量errno中将存储返回的错误值.\n===================== bind() 函数 一旦你有一个套接字,你可能要将套接字和机器上的一定的端口关联起来。 ( 如果你想用 listen() 来侦听一定端口的数据,这是必要一步 –MUD 告 诉你说用命令 “telnet x.y.z 6969” 。 ) 如果你只想用 connect() ,那么这个步骤没有必 要 。 但是无论如何,请继续读下去。\n这里是系统调用 bind() 的大概:\n#include #include int bind(int …"
June 16, 2011
c语言socket编程笔记1
"struct sockaddr { unsigned short sa_family; // 地址家族,Af_XXX char sa_data[14]; // 14字节协议地址 };\nsa_family 能够是各种各样的类型,但是在这篇文章中都是”AF_INET” 。 sa_data 包含套接字中的目标地址和端口信息。 这好像有点不明智。\n=====================================\n为了处理 struct sockaddr,程序员创造了一个并列的结构: struct sockaddr_in (“in” 代表 “Internet”)\nstruct sockaddr_in { short int sin_family; //通讯类型(同struct sockadd中的sa_family一样可设置为 AF_INET ) struct in_addr sin_addr; //Internet 地址(结构体见下,网络字节顺序,储存 4 字节的 IP 地址) unsigned short int sin_port; //端口(网络字节顺序) unsigned …"
June 15, 2011
Ping 出现:TTL expired in transit
"今天发现电信送的一条固定IP地址出现问题,查确认属于是他们私自更改了我们的IP地址.电话通知电信大客经理…在下午接通知,已经改好! 我觉得还是自已测试一下,不能太相信别人的话,因此我通知他们稍等下. 1、我先PING了一下IP地址,结果发现:\nC:\\Documents and Settings\\xm_dengwh\u0026gt;ping 218.xxx.xxx.xxx (这里是我们的IP地址)\nPinging 218.xx.xx.xx with 32 bytes of data:\nReply from 218.85.151.173: TTL expired in transit. Reply from 218.85.151.173: TTL expired in transit. Reply from 218.85.151.173: TTL expired in transit. Reply from 218.85.151.173: TTL expired in transit.\n需要注意的是: 我的IP地址:218.xxx.xxx.xxx和218.85.151.173不同.\n不是正常的TTL …"
June 15, 2011
Linux下的Memcache安装
"服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装) 官网: http://www.monkey.org/~provos/libevent/ 下载: http://www.monkey.org/~provos/libevent-1.3.tar.gz\n用wget指令直接下载这两个东西.下载回源文件后。 1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install;\n2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr;然 …"
June 15, 2011
Redis在Windows,linux平台下的安装配置
"为了方便查阅资料,特将网上搜索到的Redis相关安装配置进行归档整理:\nwindow平台Redis安装\n下载地址: http://code.google.com/p/servicestack/wiki/RedisWindowsDownload\nRedis文件夹有以下几个文件\nredis-server.exe:服务程序\nredis-check-dump.exe:本地数据库检查\nredis-check-aof.exe:更新日志检查\nredis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).\n指定redis的配置文件,如没有指定,则使用默认设置\n解压目录:\nd:\u0026gt;redis-server.exe\nredis-cli.exe:命令行客户端,测试用.windows下没有redis.conf配置文件.\n解压目录:\nd:\u0026gt;redis-cli.exe -h 127.0.0.1 -p 6379\n使用方法有两种:一种是直接使用redis-cli.exe 后面加操作,另一种是直接输 …"