内核连接数调整

系统连接数太多。 发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决, vi /etc/sysctl.conf 编辑文件,加入以下内容: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 然后执行 /sbin/sysctl -p 让参数生效。 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

Posted in 未分类. 评论暂缺 »

MIME类型大全

MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 下面列出常用的文件对应的MIME类型: Mime-Types(mime类型) Dateiendung(扩展名) Bedeutung application/msexcel *.xls *.xla Microsoft Excel Dateien application/mshelp *.hlp *.chm Microsoft Windows Hilfe Dateien application/mspowerpoint *.ppt *.ppz *.pps *.pot Microsoft Powerpoint Dateien application/msword *.doc *.dot Microsoft Word Dateien application/octet-stream *.exe exe application/pdf *.pdf Adobe PDF-Dateien application/post****** *.ai *.eps *.ps Adobe Post******-Dateien application/rtf *.rtf Microsoft RTF-Dateien application/x-httpd-php *.php *.phtml PHP-Dateien     [Read More →]

Posted in 未分类. 评论暂缺 »

用.htaccess设置PHP错误显示

原文:http://blog.creke.net/669.html 使用.htaccess可以在某种程度上更改PHP的错误显示的设置,实际上,相当于更改PHP.ini的参数,很是方便。 将以下相应代码放到对应目录中的.htaccess文件,即可实现相应功能。 关闭错误显示: php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0 只显示PHP错误: php_flag display_errors on php_flag display_startup_errors on php_value error_reporting 2047 其中,“2047”为要显示的错误的级别,详细表格如下: 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16 E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128 E_COMPILE_WARNING 256 E_USER_ERROR 512 E_USER_WARNING 1024 E_USER_NOTICE 2047 E_ALL 2048 [Read More →]

Posted in 未分类. 评论暂缺 »

关于freebsd5.*是否能安装sphinx

本人安装中出现的错误,希望高手能指点在freebsd5下能安装sphinx libsphinx.a(sphinx.o): In function `CSphProcessSharedMutex::CSphProcessSharedMutex()’: sphinx.o(.text+0xad5e): undefined reference to `pthread_mutexattr_setpshared’ libsphinx.a(sphinx.o): In function `CSphProcessSharedMutex::CSphProcessSharedMutex()’: sphinx.o(.text+0xaece): undefined reference to `pthread_mutexattr_setpshared’ *** Error code 1 Stop in /tmp/install/sphinx/sphinx-0.9.9-rc1/src. *** Error code 1 Stop in /tmp/install/sphinx/sphinx-0.9.9-rc1/src. *** Error code 1 Stop in /tmp/install/sphinx/sphinx-0.9.9-rc1.

Posted in 未分类. 评论暂缺 »

mysql 中 NOW() 与 sysdate()的区别

NOW()取的是Mysql 服务器自身的时间戳 sysdate()取的是系统的时间戳。 具体应用: 当进行主从同步的时候,主库执行完一条语句,会把自己的数据库时间戳同步到备库上。这时候备库执行相同的语句会获得相同的时间戳,要是用sysdate,就算数据库时间戳同步了也没用,因为取的是系统时间戳。 故,在实际开发应用中,尽量使用mysql的 NOW()函数。 原文见:http://hi.baidu.com/%CA%AB%D5%B9/blog/item/6b0da9518e1c36868d5430a7.html

Posted in 未分类. 评论暂缺 »

Mysql Faq

Q、编译安装mysql的时候出现: configure: error: No curses/termcap library found A、没有安装ncurses这个软件。需要加载其中的链接库 libncursesw.so ./configure –with-named-curses-libs=/usr/lib/libncursesw.so.5  

Posted in 未分类. 评论暂缺 »

关于Mysql group by和with rollup的用法小记

今在实现某功能时遇一sql,用到分组聚合功能。记起一书中曾提起过with rollup可组内聚合。故特弄清其中细节及注意事项。 书中原始实例: ========================================     create table sales (          `year` int not null,          `country` varchar(20) not null,          `product` varchar(32) not null,          `profit` int        );                insert into sales values(2004, "china", "tnt1", 2001);        insert into sales values(2004, "china", "tnt2", 2002);    [Read More →]

Posted in 未分类. 评论暂缺 »

uml入门教程

1 面向对象概述 这是第一节,主要先来确定几个基础的概念. 1.什么是对象 对象(Object)是面向对象的基本构造单元.是一些变量和方法的集合,用于模拟实现世界中的一些事物模型.如一台电脑,一个人,一间房子等.当然也可以模拟一些虚拟的东西,比如一个学号,一个编号,一个院系等. 2.面向对象与面向过程的区别 面向对象"什么做什么"与面向过程"做什么"最大的区别在于,面向对象的重点在于谁发出了什么命令,而面向过程只关心一个命令. 面向对象以对象为基础,以事件或消息驱动对象执行处理.它不像面向过程设计一样以函数为单元,在一开始就需要使用一个主函数,来概适整个程序,像向对象是以部分着手,去构建整个程序.面向对象以数据为中心,使用类作为表现数据的载体,面向过程以功能为中心来捞述程序. 面向对象的程序控制流程以事件或消息来驱动,而面向过程的程序则是以事先预定的程序来执行.所以当需求变化很大的时候,面向过程的程序往往需要重构大部分甚至所有代码,而面向对象则可以轻构解决. 3对象与类 类是对象集合的再抽像,对象是类的实例.可以用一个简单的例子来说明.把中国人当成是一个类,那么你我都是这个类的一个实例.你我等这些中国人的集合抽像成了中国人这个类.中国人是一个虚的概念,而你我是一个实实在在的个体. 4消息和事件 消息是对象与对象之间相互作用的方式.消息一般包括消息的发送对象,消息的接收对象,消息的传递方式,消息的内容,消息的返回五部分组成. 比如张三对李四说:今天我们来喝一杯. 事件是系统预先定义的,通过指定的条件触发的动作. 比如我打一下你的头,你头痛了.  这里我通过"打"这个行为来传递了一个消息对你产生了作用,你触法了"痛"这个事件. 5面向对象的基本特征 抽象:将要描述的事物进行简化,将事物特征进行概括,以事物层次结构来组织模型. 比如:狗.我们在软件中不可能把狗的所有信息都描述出来,我们把它简化为有四条腿,一个头,一个尾巴,还有一个躯杆. 这样我们就像画画一样画出了一个抽象的模型图. 然后对它的特征进行概括,比如它会叫,会吃,会走. 然后狗还分哈巴狗,狼狗等很多种.所以这里又分出了狗的层次. 封装:将对象的状态和行为绑到一起,并且尽可能的隐藏对象的内部细节. 比如:一台电视机,它的所有特征和内部结构都封装起来,我们不需要知道它的内部原理是怎么的,我们只需要知道怎么打开它,怎么换台就够了. 继承:继承是反映客观世界中对象的层次关系.正如上面狗的例子中,我们的狼狗,哈巴狗都继承自一个虚拟的狗的概念中.继承在很大程度上简化了我们的工作,也清淅的展示出了对象的层次关系. 多态:多态是指两个或多个属于不同类的对象,对于同一个消息或方法调用做出不同响应的能力.. 比如:当我们手上拿一个蓝球的时候,我们说:走,打球. 对方就能清楚的理解我们指的打球是指打蓝球或不是足球,乒乓球。 2 面向对象方法分析与设计 1.面向对象分析 面向对象分析的目的是知识客观世界并进行建模. 其实在面向对象的分析过程中也是对需求的分析和理解. 使用面向对象分析的过程一般如下: 获取问题陈述–>确定类–>准备数据字典–>确定关联–>使用继承来细化类型–>完善对象模型–>建立对象动态模型–>建系统功能模型 (1) 获取问题陈述就是与用户一起理解系统,搞清楚系统的业务逻辑,发现用户的需求,在这个时候我们应该以一个用户的身份去看待这些需求.很多设计人员在这个时 候没有做足功能,导致最后系统的设计和维护异常困难,并开始抱怨起用户的变态要求.在搞清楚系统的需求之后,我们不要马上开始编码,如果在这个时候你都已 经写下了几篇代码了,那么恭喜你,以后够你受的了. (2)当得到了足够多的问题并对其理解之后,我们就可以把问题中承现出来的物理实体和概念描述整理出来,暂时把这些标志成一个类实体.然后清除冗余类和与系统不相干的类.最终得到我们的模型实体 (3)把第二步分析出来的类建立一个数据字典,这个数据字典很有可能会在我们的数据库设计中起到很大的作用. (4)通过第二步和第三步,我们已经得到了系统中的实体信息,现在我们就要让各个实体信息之间产生联系. 比如在一个学生选课系统中. 学生被定义为一个实体,课程也被定义为一个实体,通过选课这个行为把两个实体联系起来.这个行为由学生来引发.目标为课程,产生的结果是学生是否成功的选了一门课程.通过这样的分析,在以后的设计过程中我们可以很容易的设计出学生类的方法. 1class Student{ 2 3      public bool ChooseCurriculum(Curriculum curriculum){ 4 5            [Read More →]

Posted in 未分类. 评论暂缺 »

认识 PHP 的hash函数

     转自(香港 PHP 用家社區) Hashing function (散列函式) 在网页应用中被广泛采用,从数码签署、错误检测、登入验证、到压缩储存空间,由于它的原理比较复杂,很多人把它跟加密函式混淆,对于如何运用hash function,如何选择合适的hash function,和它的优点缺点都不清楚,本文尝试解答这些问题。 简单地说,Hashing 是一种数据影射(mapping) 的算法(algorithm),通常用来把一大串不定长度的数据影射到一个固定长度的、较短的数据,这个固定长度的数据称为hashing value (散列值)。 例如我们把一个由英文字母组成的任意长度的字串,把每一个字符的ASCII 数值加起来,最后除以256 得到的余数作为hash value,这里输入的字串长度没有限制,输出的数值则必定在0 至255 之间,所以是一个合法的hashing function。 以上的hash function 只有256 个可能的hash value,很明显有很多字串都会得到相同的hash value,这种情况我们称为hash collision (散列冲突),或者简称collision,事实上从一个不定长度的数据影射到一个固定长度的数据,Collision 是无可避免的,我们并不要求完全没有collision,只需把collision 的机会尽量降低便可以了,若果真的要完全没有collision 的话,Hash value 理论上必须与输入的数据长度相同,这样便违背了hash function 的设计目的。 现实应用的hashing function 通常比较复杂,比较有名的包括MD4、MD5、SHA1、SHA256 等,它们的hash value 的数量从2 的几十次方到几百次方。其实我们任何人都可以自行设计一个hashing function,不过基于hashing function 的实际用途,我们对hashing function 有一些基本要求,在进一步解释前,让我们看看hashing 有什么常见的用途。 Hashing 的用途    1.       数码签署       很多提供程式下载的网站,都会在网页上列出下载档案的hash [Read More →]

Posted in 未分类. 评论暂缺 »

mysql将时间戳转成常用可读时间格式

  转自http://www.cnblogs.com/jackyrong/archive/2008/04/13/1150884.html mysql中一个表的一个时间列是int类型,现在想修改这个字段的值,打算可读日期时间格式转成int,然后修改那个值。 这个转换函数就是UNIX_TIMESTAMP,将可读的时间转换成int类型,具体用法: update xxx_table set xxx_time=UNIX_TIMESTAMP(’2006-11-13 13:24:22′) where …… 同时介绍一个另一个转换函数:FROM_UNIXTIME,将将时间戳转成常用时间格式 select FROM_UNIXTIME(xxx_time) from xxx_table mysql将时间戳转成常用时间格式 在mysql中,一个时间字段的存储类型是int(11),怎么转化成字符类型,比方存储为13270655222,需要转化为yyyy -mm-dd的形式 使用 FROM_UNIXTIME函数,具体如下: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, [Read More →]

Posted in 未分类. 评论暂缺 »