存档

2009年12月 的存档

算法-合并排序

2009年12月31日 DarkIce 没有评论

该算法为递归算法,将需要排序的部分均分为2部分,然后对这2部分进行递归调用排序,最后将排序好的2部分合并为一个完整数组。

示例(“|”表示划分的各个部分的分隔):

|            1       2       2       3       4       5       6       7                已排序数组

|     2       4       5       7           |         1       2       3       6

|  2       5       |       4       7     |       1       3      |       2       6

5       |      2   |     4     |      7  |     1    |      3   |     2     |      6     初始序列

时间复杂度:O(nlgn)

空间复杂度:O(n)

代码下载

代码在ubuntu9.04用g++ 4.3.3编译通过

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/0v

分类: 技术, 算法 标签: , , ,

算法-插入排序

2009年12月31日 DarkIce 没有评论

开始写点算法的东西,提纲是按算法导论来的

首先是插入排序,这个很简单,就是像扑克牌一样一张一张的插进入到正确位置

时间复杂度:O(n^2)  (最坏情况下)

空间复杂度:O(1)  (原地排序)

代码下载

代码在ubuntu9.04用g++ 4.3.3编译通过

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/0w

分类: 技术, 算法 标签: , , ,

Ubuntu下openvpn的iptables配置

2009年12月31日 DarkIce 没有评论

安装openvpn很简单apt-get install openvpn即可

之后就是build key和服务器、客户端配置,此处参考openvpn维护

服务器端的DNS相关信息可以从/etc/resolv.conf中取得
安装完openvpn下面的部分保存为~/iptables-init.sh,然后运行即可

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p all -j ACCEPT
iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

IPv6下openvpn参见架设ipv6下的openvpn

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/0x

分类: Linux, 技术 标签: , ,

WordPress英文转中文

2009年12月30日 DarkIce 没有评论

官方网站svn上下载对应版本的zh_CN.mo和zh_CN.po

在wp-content目录下新建languages目录,然后吧zh_CN.*放到该文件夹内

编辑主目录下的wp-config.php文件,将其中的语言定义语句改成:define (’WPLANG’, ‘zh_CN‘)

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/0y

换个用户名发日志

2009年12月29日 DarkIce 没有评论

本来还想找一下vps上建立LAMP的过程和配置过程,好吧,我懒了,无限期推迟

或许需要先考虑的是数据库之类的东西怎么备份出来

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/0z

分类: 杂谈 标签:

ubuntu安装APC,php加速

2009年12月28日 DarkIce 没有评论

apt-get install apache2-prefork-dev
apt-get install php-apc
一般来说这样也就够了

设置缓存,在/etr/mysql/my.cnf的[mysqld]段中增加:
Cache query-cache-type = 1
query-cache-size = 16M

修改/etc/apache2/apache2.conf,我的VPS为128M内存,swap不到400M,下面是我的配置
将Timeout 改为20,如果性能好可以稍微大一些
KeepAlive改为on,MaxKeepAliveRequests为20
KeepAliveTimeout为2,如果网站上图片、js代码比较多可以稍大一些

<IfModule mpm_prefork_module>
StartServers          1//启动apache2以后运行的服务个数
MinSpareServers       1//最小空闲服务个数,如果网站人流量大可以调大
MaxSpareServers       2//最大空闲服务个数,资源紧张尽量调小
ServerLimit          10//最大服务进程数量,硬限制
MaxClients           10//最大服务进程数量,软限制
MaxRequestsPerChild   200//处理多少个请求后必须重启服务进程,php脚本小一些比较好
</IfModule>

/etc/init.d/apache2 restart重启apache服务

—————-cut—————–

部分参数详细介绍:
原文链接

发现影响apache内存性能的主要有一下几个参数:
ThreadsPerChild
MaxRequestsPerChild
————-
KeepAlive
MaxKeepAliveRequests
KeepAliveTimeout

参数介绍如下:
ThreadsPerChild:
这个指令设置了每个子进程建立的线程数。子进程在启动时建立这些线程后就不再建立新的线程了。如果使用一个类似于mpm_winnt只有一个子进程的MPM,这个数值要足够大,以便可以处理可能的请求高峰。如果使用一个类似于worker有多个子进程的MPM,每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。
MaxRequestsPerChild:
这个参数是说,apache进程在处理了多少个请求之后,必须退出,重新开始,以免在处理中的内存问题。
对于php脚本来说,把这个参数设置的小一些是有好处的,可以避免程序使用的内存持续增长对apache带来的压力:让这个参数定期释放内存,因为php是在脚本执行完毕后,自动释放只用的资源(内存)的。
根据资料建议,可以设置MaxRequestsPerChild来达到内存自动释放的目的,比如设置ThreadsPerChild 250,MaxRequestsPerChild为50?如果太小的话,重新产生一个apache进程也是要消耗资源的,这是一个平衡问题。
keepAlive:
KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭TCP 连接,可以提高用户访问速度。所以打开keepAlive时,请根据自己页面的访问量、页面数据类型来设置MaxKeepAliveRequests和KeepAliveTimeout。尤其是KeepAliveTimeout,根据你页面内包含的内联的.js和图片,设置适当大小。如果内联文件较多,建议设置MaxKeepAliveRequests和KeepAliveTimeout都大一些,如果大部分内容都在一个页面里,设置小一些可能性能更好。
通过修改以上几个参数,apache内存不在暴涨了,呵呵,我设置ThreadsPerChild 250,MaxRequestsPerChild 50,MaxKeepAliveRequests 50,KeepAliveTimeout 5 ,现在页面连开几天都没有暴涨情况了。

———————-cut———————–

/etc/php5/apache2/php.ini中与资源相关的设置
设置 描述 建议值
max_execution_time 一个脚本可使用多少 CPU 秒 30
max_input_time 一个脚本等待输入数据的时间有多长(秒) 60
memory_limit 在被取消之前,一个脚本可使用多少内存(字节) 8M

具体数字主要取决于您的应用程序。如果要从用户处接收大文件,那么 max_input_time 可能必须增加,可以在 php.ini 中修改,也可以通过代码重写它。与之类似,CPU 或内存占用较多的程序也可能需要更大的设置值。目标就是缓解超标程序的影响,因此不建议全局禁用这些设置。关于 max_execution_time,还有一点需要注意:它表示进程的 CPU 时间,而不是绝对时间。因此一个进行大量 I/O 和少量计算的程序的运行时间可能远远超过 max_execution_time。这也是 max_input_time 可以大于 max_execution_time 的原因所在。

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/10

分类: Linux, 技术 标签: , ,

Ubuntu中phpmyadmin 出现 “无法载入 mcrypt 扩展,请检查 PHP 配置 ”

2009年12月28日 DarkIce 没有评论

两条命令解决

sudo apt-get install libmcrypt4 php5-mcrypt

然后,重启下apache2 服务

sudo /etc/init.d/apache2 restart

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/11

分类: Linux, 技术 标签: , ,

well,总算搞定了

2009年12月28日 DarkIce 没有评论

总算把域名也搞定了,darkice.com  darkice.net都占用了,只好加一个s

vps资源真不怎么样,经常就资源耗尽了

游客也可以在右边的游客留言页面留言

 

认识的人需要上国外网站的VPN的可以找我。

转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/12

分类: 杂谈 标签: , , ,