首页
关于
联系我
Search
1
小米路由器4A千兆版(R4A) 关闭ipv6 防火墙
90 阅读
2
小米路由器4A千兆版(R4A)开启ssh
84 阅读
3
win11不能访问共享0x800704f8
78 阅读
4
华硕主板vga亮白灯
39 阅读
5
racknerd配置IPV6
36 阅读
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
登录
Search
标签搜索
问题
linux
vps
debian
测试
其他
apt-get
库
wordpress
cdn
code
设置
信息
IP
nginx
应用
推荐
搬家
操作
bae
Typecho
累计撰写
493
篇文章
累计收到
0
条评论
首页
栏目
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
页面
关于
联系我
搜索到
119
篇与
的结果
2011-06-30
冰山主机故障
今天发现冰山出现主机故障,错误提示:lookup failure: Temporary failure in name resolution 看提示貌似resove name 的问题,经检查问题出在使用的武汉电信dns上,解决方法是修改:/etc/resove dns改为8.8.8.8 ,不过建议改为其他省电信的dns,毕竟网内的速度快。
2011年06月30日
14 阅读
0 评论
0 点赞
2011-06-21
wps、office表格内文字行距调整
一直纠结该怎么调整呢,好像调整行距没啥反应,今天终于搞定,先选择表格内的文件,然后点工具栏里的格式,选择段落。出现下面的界面 去掉“如果定义了文档网格,则与网格对齐”前边的勾去掉。然后就可以自由设置行距了。
2011年06月21日
8 阅读
0 评论
0 点赞
2011-04-15
python3真纠结
资料这么少。只能一点一点摸索了
2011年04月15日
10 阅读
0 评论
0 点赞
2011-03-24
hta 301
RewriteEngine on RewriteRule ^(.*)$ http://118.123.106.237:50001/
2011年03月24日
9 阅读
0 评论
0 点赞
2011-03-12
ADB命令
ADB常用的几个命令1. 查看设备adb devices这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2. 安装软件 adb install <apk文件路径>这个命令将指定的apk文件安装到设备上3. 卸载软件 adb uninstall <软件名> adb uninstall -k <软件名>如果加 -k 参数,为卸载软件但是保留配置和缓存文件. 4. 登录设备shell adb shell adb shell <command命令>这个命令将登录设备的shell.后面加<command命令>将是直接运行设备命令, 相当于执行远程命令 5. 从电脑上发送文件到设备 adb push <本地路径> <远程路径>用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机) 6. 从设备上下载文件到电脑 adb pull <远程路径> <本地路径>用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑 7. 显示帮助信息 adb help这个命令将显示帮助信息删除Android系统Rom自带的软件 Android系统没有卸载Rom自带软件的功能.可能有些同学很想删除废了武功的Youtube,想删除墙那边的Twitter.加上Android的快捷方式没法修改没法自己排序没法分页.安装的程序太多就会发现原来找到自己想要的东西很难.综上所述,我觉得告知各位菜鸟同学如何删除自带的程序是很有必要的一件事情.1.确定手机root了,取得了root权限才能删除系统文件呀.2.下载Android_db.rar,解压到%windir/%System32下.3.手机连接数据线,在电脑上打开cmd,然后输入命令 adb remountadb shell
2011年03月12日
10 阅读
0 评论
0 点赞
2011-03-11
恼人的‘系统无法执行指定的程序’
搞了半天,也不知道究竟是哪里的问题,想来想去最可能的就是vc库没有安装,就是那个挺有名的vc2005库。估计也好自己用的精简系统有关啊。只要装上就没问题了。小疏忽往往制造大麻烦啊。顺便上传vc2005、vc2008的库。一般装vc2005就可以了。vc2005库vc2008
2011年03月11日
12 阅读
0 评论
0 点赞
2011-03-10
E:can't open CACHE:recovery/log
安卓刷机的时候,进入恢复模式的时候会出现这样的问题,如果你已经进不去了,那没啥办法,只能重刷了,重刷后,进入系统。用re 或者是终端删除/cache 目录下的所有内容就行了。经试验确实可以了。1. 进入模拟终端Terminal 2. 执行下列命令: su cd /cache pwd rm -rf * exit 3. 上面的命令在执行rm删除前,一定要用pwd确认目前已经是在/cache目录下了, 否则rm -rf * 。。。。你懂的; 4. 执行rm命令后, 系统会报 lost+found目录无法删除, 这个不用管, exit或者直接退出即可 5. reboot到recovery模式, enjoy it ! 网上的命令,自己用不是很好,建议还是用re 删除来的直接。
2011年03月10日
13 阅读
0 评论
0 点赞
2011-03-10
java sdk安装配置
先说window下的:安装基本没什么了,和普通的程序安装差不多。配置稍稍麻烦点,我就奇怪了,迅雷都能自动配置,添加path。java却不行。右击我的电脑-属性-高级-环境变量-系统变量-新建 path /classpathpath = 你的jdk安装目录 classpath = 你的jdk安装目录/lib .不明白的就看下边的图吧,很简单的看图说话。linux的安装就很简单了,ubuntu用新力得就是自动配置的,完全不用管。
2011年03月10日
2 阅读
0 评论
0 点赞
2011-03-08
sdk platform tools component is missing
原来下载的andriod sdk 不是完整版本的,还需要运行/tool/andriod 安装下才可以。linux 版本是这样,windows版没有安装不是很清楚。----------------------------------------------------2010.3.10---------------------经验证window下下载的andriod sdk 安装版也是不完整的,需要自己下载。方法同linux
2011年03月08日
8 阅读
0 评论
0 点赞
2011-02-28
php curl 资料
对于CURL库的参数详解,网上有很多我直接收录了 函数列表CURL库一共有17个函数: curl_close:关闭CURL会话 curl_copy_handle:复制一个CURL会话句柄,同时3复制其所有参数 curl_errno:返回最后一个错误码 curl_error:返回一个字符串,用以描述当前会话的最后一个错误 curl_exec:执行当前会话 curl_getinfo:获取特定信息 curl_init:初始化CURL会话 curl_multi_add_handle:在一个多连接会话中添加一个句柄 curl_multi_close:关闭一个多句柄CRUL会话 curl_multi_exec:执行一个多句柄CURL会话 curl_multi_getcontent:返回一个句柄执行后的内容,如果设置了CURLOPT_RETURNTRANSFER curl_multi_info_read:获取当前所有连接的信息 curl_multi_init:初始化一个多句柄会话 curl_multi_remove_handle:从一个多句柄会话中删除一个句柄 curl_multi_select:获取所有绑定的套接字 curl_setopt:设置CURL传输选项 curl_version:获取CURL版本 常用设置选项布尔值选项 CURLOPT_AUTOREFERER:当返回的信息头含有转向信息时,自动设置前向连接 CURLOPT_BINARYTRANSFER:TRUEtoreturntherawoutputwhenCURLOPT_RETURNTRANSFERisused. CURLOPT_COOKIESESSION:标志为新的cookie会话,忽略之前设置的cookie会话 CURLOPT_CRLF:将Unix系统的换行符转换为Dos换行符 CURLOPT_DNS_USE_GLOBAL_CACHE:使用全局的DNS缓存 CURLOPT_FAILONERROR:忽略返回错误 CURLOPT_FILETIME:获取请求文档的修改日期,该日期可以用curl_getinfo()获取。 CURLOPT_FOLLOWLOCATION:紧随服务器返回的所有重定向信息 CURLOPT_FORBID_REUSE:当进程处理完毕后强制关闭会话,不再缓存供重用 CURLOPT_FRESH_CONNECT:强制建立一个新的会话,而不是重用缓存的会话 CURLOPT_HEADER:在返回的输出中包含响应头信息 CURLOPT_HTTPGET:设置HTTP请求方式为GET CURLOPT_HTTPPROXYTUNNEL:经由一个HTTP代理建立连接 CURLOPT_NOBODY:返回的输出中不包含文档信息. CURLOPT_NOPROGRESS:禁止进程级别传输,PHP自动设为真 CURLOPT_NOSIGNAL:忽略所有发往PHP的信息 CURLOPT_POST:设置POST方式提交数据,POST格式为application/x-www-form-urlencoded CURLOPT_PUTTRUE:设置PUT方式上传文件,同时设置CURLOPT_INFILE和CURLOPT_INFILESIZE CURLOPT_RETURNTRANSFER:返回字符串,而不是调用curl_exec()后直接输出 CURLOPT_SSL_VERIFYPEER:SSL验证开启 CURLOPT_UNRESTRICTED_AUTH:一直链接后面附加用户名和密码,同时设置CURLOPT_FOLLOWLOCATION CURLOPT_UPLOAD:准备上传整数值选项 CURLOPT_BUFFERSIZE:缓存大小 CURLOPT_CONNECTTIMEOUT:连接时间设置,默认0为无限制 CURLOPT_DNS_CACHE_TIMEOUT:内存中保存DNS信息的时间,默认2分钟 CURLOPT_INFILESIZE:上传至远程站点的文件尺寸 CURLOPT_LOW_SPEED_LIMIT:传输最低速度限制andabort. CURLOPT_LOW_SPEED_TIME:传输时间限制 CURLOPT_MAXCONNECTS:最大持久连接数 CURLOPT_MAXREDIRS:最大转向数 CURLOPT_PORT:连接端口 CURLOPT_PROXYAUTH:*****验证方式 CURLOPT_PROXYPORT:*****端口 CURLOPT_PROXYTYPE:*****类型 CURLOPT_TIMEOUT:CURL函数的最大执行时间字符串选项 CURLOPT_COOKIE:HTTP头中set-cookie中的cookie信息 CURLOPT_COOKIEFILE:包含cookie信息的文件,cookie文件的格式可以是Netscape格式,或者只是HTTP头的格式 CURLOPT_COOKIEJAR:连接结束后保存cookie信息的文件 CURLOPT_CUSTOMREQUEST:自定义请求头,使用相对地址 CURLOPT_ENCODING:HTTP请求头中Accept-Encoding的值 CURLOPT_POSTFIELDS:POST格式提交的数据内容 CURLOPT_PROXY:代理通道 CURLOPT_PROXYUSERPWD:代理认证用户名和密码 CURLOPT_RANGE:返回数据的范围,以字节记 CURLOPT_REFERER:前向链接 CURLOPT_URL:要连接的URL地址,可以在curl_init()中设置 CURLOPT_USERAGENT:HTTP头中User-Agent的值 CURLOPT_USERPWD:连接种使用的验证信息数组选项 CURLOPT_HTTP200ALIASES:200响应码数组,数组中的响应吗被认为是正确的响应 CURLOPT_HTTPHEADER:自定义请求头信息只能是流句柄的选项: CURLOPT_FILE:传输要写入的晚间句柄,默认是标准输出 CURLOPT_INFILE:传输要读取的文件句柄 CURLOPT_STDERR:作为标准错误输出的一个替换选项 CURLOPT_WRITEHEADER:传输头信息要写入的文件回调函数选项 CURLOPT_HEADERFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息按行返回。设置返回值为字符串长度。 CURLOPT_READFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此函数,将自行处理返回的数据。返回值为数据尺寸。 CURLOPT_WRITEFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息是整个字符串。设置返回值为字符串长度。
2011年02月28日
21 阅读
0 评论
0 点赞
2011-02-23
mysql读取乱码解决
SET NAMES 'UTF8'
2011年02月23日
12 阅读
0 评论
0 点赞
2011-01-28
ulimit 是什么
简单的说就是限制线程或者是资源数。看ibm上的解释吧,很详细。http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/ 概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。本文将在后面的章节中详细说明 ulimit 的功能,使用以及它的影响,并以具体的例子来详细地阐述它在限制资源使用方面的影响。 回页首 ulimit 的功能和用法 ulimit 功能简述 假设有这样一种情况,当一台 Linux 主机上同时登陆了10个人,在系统资源无限制的情况下,这10个用户同时打开了500个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。 而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。 ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。 作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户。 图1. ulimit 的使用 在下面的章节中,将详细介绍如何使用 ulimit 做相应的资源限制。 如何使用 ulimit ulimit 通过一些参数选项来管理不同种类的系统资源。在本节,我们将讲解这些参数的使用。 ulimit 命令的格式为:ulimit [options] [limit] 具体的 options 含义以及简单示例可以参考以下表格。 表1. ulimit 参数说明 选项 [options] 含义 例子 -H 设置硬资源限制,一旦设置不能增加。 ulimit – Hs64;限制硬资源,线程栈大小为 64K。 -S 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 ulimit – Sn32;限制软资源,32个文件描述符。 -a 显示当前所有的 limit 信息。 ulimit – a;显示当前所有的 limit 信息。 -c 最大的 core 文件的大小, 以 blocks 为单位。 ulimit – c unlimited; 对生成的 core 文件的大小不进行限制。 -d 进程最大的数据段的大小,以 Kbytes 为单位。 ulimit -d unlimited;对进程的数据段大小不进行限制。 -f 进程可以创建文件的最大值,以 blocks 为单位。 ulimit – f2048;限制进程可以创建的最大文件大小为2048blocks。 -l 最大可加锁内存大小,以 Kbytes 为单位。 ulimit – l32;限制最大可加锁内存大小为32Kbytes。 -m 最大内存大小,以 Kbytes 为单位。 ulimit – m unlimited;对最大内存不进行限制。 -n 可以打开最大文件描述符的数量。 ulimit – n128;限制最大可以使用128个文件描述符。 -p 管道缓冲区的大小,以 Kbytes 为单位。 ulimit – p512;限制管道缓冲区的大小为512Kbytes。 -s 线程栈大小,以 Kbytes 为单位。 ulimit – s512;限制线程栈的大小为512Kbytes。 -t 最大的 CPU 占用时间,以秒为单位。 ulimit – t unlimited;对最大的 CPU 占用时间不进行限制。 -u 用户最大可用的进程数。 ulimit – u64;限制用户最多可以使用64个进程。 -v 进程最大可用的虚拟内存,以 Kbytes 为单位。 ulimit – v200000;限制最大可用的虚拟内存为200000Kbytes。 我们可以通过以下几种方式来使用 ulimit: 在用户的启动脚本中 如果用户使用的是 bash,就可以在用户的目录下的 .bashrc 文件中,加入 ulimit – u64,来限制用户最多可以使用64个进程。此外,可以在与 .bashrc 功能相当的启动脚本中加入 ulimt。 在应用程序的启动脚本中 如果用户要对某个应用程序 myapp 进行限制,可以写一个简单的脚本 startmyapp。 ulimit – s512 myapp 以后只要通过脚本 startmyapp 来启动应用程序,就可以限制应用程序 myapp 的线程栈大小为 512K。 直接在控制台输入 user@tc511-ui:~>ulimit – p256 限制管道的缓冲区为 256K。 回页首 用户进程的有效范围 ulimit 作为对资源使用限制的一种工作,是有其作用范围的。那么,它限制的对象是单个用户,单个进程,还是整个系统呢?事实上,ulimit 限制的是当前 shell 进程以及其派生的子进程。举例来说,如果用户同时运行了两个 shell 终端进程,只在其中一个环境中执行了 ulimit – s100,则该 shell 进程里创建文件的大小收到相应的限制,而同时另一个 shell 终端包括其上运行的子程序都不会受其影响: Shell 进程1 ulimit – s100 cat testFile > newFile File size limit exceeded Shell 进程2 cat testFile > newFile ls – s newFile 323669newFile 那么,是否有针对某个具体用户的资源加以限制的方法呢?答案是有的,方法是通过修改系统的 /etc/security/limits 配置文件。该文件不仅能限制指定用户的资源使用,还能限制指定组的资源使用。该文件的每一行都是对限定的一个描述,格式如下: <domain> <type> <item> <value> domain 表示用户或者组的名字,还可以使用 * 作为通配符。Type 可以有两个值,soft 和 hard。Item 则表示需要限定的资源,可以有很多候选值,如 stack,cpu,nofile 等等,分别表示最大的堆栈大小,占用的 cpu 时间,以及打开的文件数。通过添加对应的一行描述,则可以产生相应的限制。例如: * hard noflle100 该行配置语句限定了任意用户所能创建的最大文件数是100。 现在已经可以对进程和用户分别做资源限制了,看似已经足够了,其实不然。很多应用需要对整个系统的资源使用做一个总的限制,这时候我们需要修改 /proc 下的配置文件。/proc 目录下包含了很多系统当前状态的参数,例如 /proc/sys/kernel/pid_max,/proc/sys/net/ipv4/ip_local_port_range 等等,从文件的名字大致可以猜出所限制的资源种类。由于该目录下涉及的文件众多,在此不一一介绍。有兴趣的读者可打开其中的相关文件查阅说明。 回页首 ulimit 管理系统资源的例子 ulimit 提供了在 shell 进程中限制系统资源的功能。本章列举了一些使用 ulimit 对用户进程进行限制的例子,详述了这些限制行为以及对应的影响,以此来说明 ulimit 如何对系统资源进行限制,从而达到调节系统性能的功能。 使用 ulimit 限制 shell 的内存使用 在这一小节里向读者展示如何使用 – d,– m 和 – v 选项来对 shell 所使用的内存进行限制。 首先我们来看一下不设置 ulimit 限制时调用 ls 命令的情况: 图2. 未设置 ulimit 时 ls 命令使用情况 大家可以看到此时的 ls 命令运行正常。下面设置 ulimit: >ulimit -d1000-m1000-v1000 这里再温习一下前面章节里介绍过的这三个选项的含义: -d:设置数据段的最大值。单位:KB。 -m:设置可以使用的常驻内存的最大值。单位:KB。 -v:设置虚拟内存的最大值。单位:KB。 通过上面的 ulimit 设置我们已经把当前 shell 所能使用的最大内存限制在 1000KB 以下。接下来我们看看这时运行 ls 命令会得到什么样的结果: haohe@sles10-hehao:~/code/ulimit> ls test -l /bin/ls: errorwhileloading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory 从上面的结果可以看到,此时 ls 运行失败。根据系统给出的错误信息我们可以看出是由于调用 libc 库时内存分配失败而导致的 ls 出错。那么我们来看一下这个 libc 库文件到底有多大: 图3. 查看 libc 文件大小 从上面的信息可以看出,这个 libc 库文件的大小是1.5MB。而我们用 ulimit 所设置的内存使用上限是 1000KB,小于1.5MB,这也就充分证明了 ulimit 所起到的限制 shell 内存使用的功能。 使用 ulimit 限制 shell 创建的文件的大小 接下来向读者展示如何使用 -f 选项来对 shell 所能创建的文件大小进行限制。 首先我们来看一下,没有设置 ulimit -f 时的情况: 图4. 查看文件 现有一个文件 testFile 大小为323669bytes,现在使用 cat 命令来创建一个 testFile 的 copy: 图5. 未设置 ulimit 时创建复本 从上面的输出可以看出,我们成功的创建了 testFile 的拷贝 newFile。 下面我们设置 ulimt – f100: > ulimit -f100 -f 选项的含义是:用来设置 shell 可以创建的文件的最大值。单位是 blocks。 现在我们再来执行一次相同的拷贝命令看看会是什么结果: 图6. 设置 ulimit 时创建复本 这次创建 testFile 的拷贝失败了,系统给出的出错信息时文件大小超出了限制。在 Linux 系统下一个 block 的默认大小是512bytes。所以上面的 ulimit 的含义就是限制 shell 所能创建的文件最大值为512x100=51200bytes,小于323669bytes,所以创建文件失败,符合我们的期望。这个例子说明了如何使用 ulimit 来控制 shell 所能创建的最大文件。 使用 ulimit 限制程序所能创建的 socket 数量 考虑一个现实中的实际需求。对于一个 C/S 模型中的 server 程序来说,它会为多个 client 程序请求创建多个 socket 端口给与响应。如果恰好有大量的 client 同时向 server 发出请求,那么此时 server 就会需要创建大量的 socket 连接。但在一个系统当中,往往需要限制单个 server 程序所能使用的最大 socket 数,以供其他的 server 程序所使用。那么我们如何来做到这一点呢?答案是我们可以通过 ulimit 来实现!细心的读者可能会发现,通过前面章节的介绍似乎没有限制 socket 使用的 ulimit 选项。是的,ulimit 并没有哪个选项直接说是用来限制 socket 的数量的。但是,我们有 -n 这个选项,它是用于限制一个进程所能打开的文件描述符的最大值。在 Linux 下一切资源皆文件,普通文件是文件,磁盘打印机是文件,socket 当然也是文件。在 Linux 下创建一个新的 socket 连接,实际上就是创建一个新的文件描述符。如下图所示(查看某个进程当前打开的文件描述符信息): 图7. 查看进程打开文件描述符 因此,我们可以通过使用 ulimit – n 来限制程序所能打开的最大文件描述符数量,从而达到限制 socket 创建的数量。 使用 ulimit 限制 shell 多线程程序堆栈的大小(增加可用线程数量) 在最后一个例子中,向大家介绍如何使用 -s(单位 KB)来对线程的堆栈大小进行限制,从而减少整个多线程程序的内存使用,增加可用线程的数量。这个例子取自于一个真实的案例。我们所遇到的问题是系统对我们的多线程程序有如下的限制: ulimit -v200000 根据本文前面的介绍,这意味着我们的程序最多只能使用不到 200MB 的虚拟内存。由于我们的程序是一个多线程程序,程序在运行时会根据需要创建新的线程,这势必会增加总的内存需求量。一开始我们对堆栈大小的限制是1024(本例子中使用1232来说明): # ulimit – s1232 当我们的程序启动后,通过 pmap 来查看其内存使用情况,可以看到多个占用 1232KB 的数据段,这些就是程序所创建的线程所使用的堆栈: 图8. 程序线程所使用的堆栈 每当一个新的线程被创建时都需要新分配一段大小为 1232KB 的内存空间,而我们总的虚拟内存限制是 200MB,所以如果我们需要创建更多的线程,那么一个可以改进的方法就是减少每个线程的固定堆栈大小,这可以通过 ulimit – s 来实现: # ulimit -s512 我们将堆栈大小设置为 512KB,这时再通过 pmap 查看一下我们的设置是否起作用: 图9. 设置 ulimit 后堆栈大小 从上面的信息可以看出,我们已经成功的将线程的堆栈大小改为 512KB 了,这样在总内存使用限制不变的情况下,我们可以通过本小节介绍的方法来增加可以创建的线程数,从而达到改善程序的多线程性能。 回页首 总结 综上所述,linux 系统中的 ulimit 指令,对资源限制和系统性能优化提供了一条便捷的途径。从用户的 shell 启动脚本,应用程序启动脚本,以及直接在控制台,都可以通过该指令限制系统资源的使用,包括所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存,等等方面。本文中的示例非常直观的说明了 ulimit 的使用及其产生的效果,显而易见,ulimit 对我们在 Linux 平台的应用和开发工作是非常实用的。 回页首 特别感谢 贺皓为本篇文章的撰写提出了很多建议,做了大量实验,提供了文章中的实验数据和结论。 贺皓是 IBM CSTL(中国系统与科技开发中心)的软件工程师。他在复旦大学获得了计算机科学专业的学士与硕士学位。目前他在 IBM SVC Agent 开发小组从事研发工作。 参考资料 参考 Linux Man Pages获取 ulimit 信息。 在 developerWorks Linux 专区寻找为 Linux 开发人员(包括 Linux 新手入门)准备的更多参考资料,查阅我们 最受欢迎的文章和教程。 在 developerWorks 上查阅所有 Linux 技巧和 Linux 教程。
2011年01月28日
10 阅读
0 评论
0 点赞
2011-01-28
pdo_dbh.c:410: error: ‘zval’ has no member named ‘refcount’
环境:php5.35解决方法很简单:不要编译PDO模块了,php5.35已经包含了。
2011年01月28日
8 阅读
0 评论
0 点赞
2011-01-26
mysql5.5.8安装
mysql5.5.8使用了cmake的安装方式,说下过程 1.首先安装cmake;下载地址:http://www.cmake.org/cmake/resources/software.html tar xzvf cmake-2.8.3.tar.gz cd cmake-2.8.3 ./configure --prefix=/usr make&&make install 实践证明这个编译过程在vps 128m下很缓慢。 2:开始编译mysql cd mysql-5.5.8 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_COMMENT=slevin -DWITH_DEBUG=OFF make make install 如果没出错就是成功了。
2011年01月26日
10 阅读
0 评论
0 点赞
2011-01-26
编译mcrypt遇到的错误
*** 'libmcrypt-config --version' returned 2.4.0, but LIBMCRYPT (2.5.8) *** was found! If libmcrypt-config was correct, then it is best *** to remove the old version of LIBMCRYPT. You may also be able to fix the error *** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing *** /etc/ld.so.conf. Make sure you have run ldconfig if that is *** required on your system. *** If libmcrypt-config was wrong, set the environment variable LIBMCRYPT_CONFIG *** to point to the correct copy of libmcrypt-config, and remove the file config.cache *** before re-running configure configure: error: *** libmcrypt was not found 问题原因是path,他在path目录里没找到, 解决方法:方法是ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
2011年01月26日
10 阅读
0 评论
0 点赞
2011-01-13
这两天要研究个图片提示的方法
一直纠结是不是使用jquery库
2011年01月13日
10 阅读
0 评论
0 点赞
2011-01-08
最杯具的是vps 没有apt
冰山真是垃圾啊,技术人员大约是脑子有问题了,竟然没有安装apt,现在正在一步一步安装,同时也再次说明linux安装时噩梦啊。
2011年01月08日
7 阅读
0 评论
0 点赞
2011-01-03
CodeRender
这东西不错,说下作用吧,代码高亮,但是不用插件,这个很高级吧,就是撰写的时候麻烦点。要先转好码,再放进博客里 上传包大家自己看吧。CodeRender(Unmi)
2011年01月03日
10 阅读
0 评论
0 点赞
2010-11-03
Nginx status
开启方法: stub_status on; #Nginx 状态监控配置 例子: Active connections:2 server accepts handled requests 7979347 Reading:0Writing:1Waiting:1 # active connections – 当前 Nginx 正处理的活动连接数。 # serveraccepts handled requests -- 总共处理了79个连接 , 成功创建79次握手 (证明中间没有失败的 ), 总共处理了347个请求 。 # reading -- nginx 读取到客户端的 Header 信息数。 # writing -- nginx 返回给客户端的 Header 信息数。 # waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。
2010年11月03日
11 阅读
0 评论
0 点赞
1
...
5
6