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 后面加操作,另一种是直接输 …"
June 15, 2011
Google开源了一个kv存储的库leveldb
"Google开源了一个kv存储的库leveldb,从提交的代码和contributor名单来看,毫无疑问,就是bigtable论文描述的tablet的实现。也就是我们常说的LSMTree的一个实现。 http://code.google.com/p/leveldb/\n那LSMTree是什么呢?\nhttp://www.douban.com/group/topic/19607128/\nThe Log-Structured Merge-Tree (LSM-Tree)\nhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.2782\u0026amp;;rep=rep1\u0026amp;type=pdf\n这篇文章读起来感觉有难度,细节太多。它介绍了 LSM-Tree 这种算法思想。这种算法思想主要用于解决日志记录索引的问题。这种应用的特点是数据量大、写速率高(2000条/s),又要建立有效的索引来查找日志中的特定条目。 采用 B+ 树索引,因为数据量大,每次又是随机的写到一个 page 中,导致无法进行有效的 page 缓存, …"
June 15, 2011
windows下网络测试的好工具:NTttcp和NetCPS
"网上的免费网络测试工具很多,在这里,我将向大家介绍两款优秀的网络测试工具,可以帮助大家便捷的进行网络性能测试。这两款工具即 NTttcp 和 NetCPS。 ——————————————————————————————–\n在上次专题文章中,我向大家介绍了优秀的开源软件 iperf,以及如何用它来快速进行网络性能测试。之后我收到了很多TechRepublic读者的反馈,向我推荐或询问同类的优秀软件,因此在本期文章中,我再向各位推荐两款类似的工具软件,即微软的Network Performance Tool (NTttcp)以及 NetChain的 NetCPS.\nMicrosoft的 NTttcp 测试工具可以说是iperf的强化版本,并且针对Windows环境进行了优化。 NTttcp的优势在于它可以根据网络任务调整CPU使用率,并且支持多核CPU。另外,NTttcp针对不同系统平台拥有不同的版本,如32-bit (x86)版本, 64-bit (x64)版本,以及IA-64版本。使用Windows XP, Windows Server 2003, Windows Vista, …"