July 14, 2010
Windows下 Apache 性能优化
"一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。\nmpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。\nmpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。\nThreadsPerChild\n这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。 mpm_winnt上的默认 …"
July 14, 2010
apache工作方式
"1 、prefork.c模块(一个非线程型的、预派生的MPM) prefork MPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。\nServerLimit 20000\nStartServers 5\nMinSpareServers 5\nMaxSpareServers 10\nMaxClients 1000\nMaxRequestsPerChild 0\nServerLimit 2000\n//默认的MaxClient最大是256个线程,如果想设置更大的值,就的加上 ServerLimit 这个参数。20000是 ServerLimit 这个参数的最大值。如果需要更大,则必须编译 apache,此前都是不需要重新编译 Apache。\n生效前提:必须放在其他指令的前面\nStartServers 5\n// …"
July 14, 2010
apache prefork优化及压力测试
"优化apache prefork模式的参数, (384M内存openvz 的vps环境下面)\n\u0026lt;IfModule mpm_prefork_module\u0026gt; StartServers 12 MinSpareServers 12 MaxSpareServers 12 MaxClients 12 MaxRequestsPerChild 100 \u0026lt;/IfModule\u0026gt; StartServers是启动的进程数,Min和Max是最小最大进程数, MaxClients是最大可连接的客户端,MaxRequestPerChild是一个进程的生命周期内处理的请求数量,一旦达到设定的这个值,就回收进程。 这里的vps环境是内存384M最大可用,openvz的vps.其它优化设置可以参考\n测试一千个客户端并发时的压力,可以用apache自带的ab.exe。\nab -n 1000 -c 1000 http://www.netroby.com/index.php\n测试结果:\nServer Software: Apache/2.2.14 Server Hostname: …"
July 13, 2010
发现瓶颈 – Profiling(程序剖析) -MySQL Profiling
"MySQL程序剖析 (Profiling)\n我们将要详细的讲到MySQL的剖析(Profiling),因为它很少依赖于你的应用。应用和服务器 级别的剖析有的时候都是有必要的。虽然应用级别的剖析可以给你整个应用性能的总揽。,但是对MySQL的剖析提供了信息是服务器级别所提供不了的。比如, 对PHP代码进行剖析不会显示MySQL有多少行语句执行了。\n与应用剖析一样,目标是找出MySQL哪部分消耗过多的时间。我们不会剖析MySQL源码的,虽然有的 时候定制化MySQL安装很有用,但是这是另一本书的主题了。所替代的是,我们将教你一些可以技术来获取和分析不同种类的MySQL执行语句的信息。\n你可以用在任意的颗粒级别以满足你的需求:你可能对整个服务器进行剖析或者单独检查一个语句或者一组语 句。下列信息你可以一点点的收集:\nMySQL经常访问的那些数据 MySQL经常执行语句的类型 MySQL线程大部分时间的状态 MySQL经常执行语句的子系统 MySQL执行语句所访问的数据类型 不同活动的类型,比如扫描索引。 我们先从范围最广的剖析开始,那就是服务器剖析,将教你更多细节。 …"
July 13, 2010
查看mysql索引使用情况
"查看索引使用情况\n如果索引正在工作, Handler_read_key 的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。\nHandler_read_rnd_next 的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引。\n语法:\nmysql\u0026gt; show status like ‘Handler_read%’;\n有关更多MySQL之Handler_read_*介绍参考:"
July 13, 2010
mysql中使用source命令恢复sql备份文件时出现的问题
"当使用mysql做数据库还原的时候,由于有些数据很大,总是失败并决 MySQL server has gone away之类的信息,并自动重新连接数据库且自动继续执行恢复操作,此时没有办法重新指定字符集,容易出现乱码,导致数据库恢复失败,只需要修改max_allowed_packet 参数的值即可.\nmysql根据配置文件会限制server接受的数据包大小。\n有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。\n1) 方法1 可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。\nmax_allowed_packet = 20M 如果找不到my.cnf可以通过\nmysql --help | grep my.cnf 去寻找my.cnf文件。\n2) 方法2 (很妥协,很纠结的办法)\n进入mysql server\nmysql -h 主机 -u 账号 -p密码 set global max_allowed_packet = 2*1024*1024*10 然后关闭掉这此mysql server链 …"
July 11, 2010
[教程]freebsd下nagios安装教程
"一、安装apache\ncd /usr/ports/www/apache2 make install clean\n二、安装nagios和 Nagios-plugin\n1.安装nagios主程序\ncd /usr/ports/net-mgmt/nagios make install clean\n在安装的过程中会自动安装nagios-plugin插件.常用的脚本这时会被安装在” /usr/local/libexec/nagios/“路径在resource.cfg里面有定义的,即常量 $USER1$的值目录里.\nNRpe 下载地址为: http://www.nagios.org/download/addons //如果所要监控的服务器中有linux,不要直接使用ports 安装,因为ports安装过后,其格式为check_nrpe2, 但是linux 采用源码安装的为check_nrpe. 从而导致两者之间不能通信\n#cd /usr/local\n#fetch …"
July 11, 2010
FreeBSD利用poptop架设vpn指南
"安装poptop cd /usr/ports/net/poptop make install clean ===\u0026gt; SECURITY REPORT: This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system. /usr/local/sbin/pptpd\nThis port has installed the following startup scripts which may cause these network services to be started at boot time. /usr/local/etc/rc.d/pptpd\ncd /usr/local/etc cp pptpd.conf.sample pptpd.conf vi pptpd.conf cd /usr/ports/net/poptop make install clean\n三、设 …"
July 11, 2010
centos下安装Nagios服务器监控软件
"nagios可以对服务器进行全面的监控,包括服务(apache、mysql、ntp、dns、disk、qmail和sshd等等)的状态,服务器的状态(up、down等\n等)。它是一个完全GPL协议的开源软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,可以自定义shell脚\n本进行监控服务,非常适合大型网络。\nnagios的包含主动监控和被动监控。\n主动检查是通过监控中心的主机发出请求,让运行在远程主机上的nrpe守护进程收集信息,然后报告它,它通过web接口把数据显示在页面上。\n它的工作原理如下:\n被动监控是当远程被监控主机处于防火墙之内的时候,只有远程主机可以访问到监控中心,防火墙之内可以设置另外一个监控中心,远程监控\n中心的nagios收集服务器信息以后,和nsca报告,由naca客户端报告naca的服务器端,然后报告监控中心的nagios,通过web接口显示监控结果。\nNagios是一个监视系统和网络的应用程序。它监视你所指定主机和服务,当监视的内容变好或者变坏时发出警告。Nagios最初是被设计在Linux\n平台上运行的,然而现在在其他平台上也 …"
July 9, 2010
show profiles 详解
"https://dev.mysql.com/doc/refman/5.7/en/show-profile.html\n此功能将在新版本中被移除,性能分析使用新方法来代替。(官方提供了此命令的使用方法, 对于 show profile for query ID / show profile CPU for query ID 结果中每项的说明信息请参考: https://www.cnblogs.com/itcomputer/articles/5056127.html)\nNote\nThese statements are deprecated and will be removed in a future MySQL release. Use the Performance Schema instead; see Chapter 25, MySQL Performance Schema.\n对于新版本我们也可以直接查询 INFORMATION_SCHEMA PROFILING . See Section 25.20, “The INFORMATION_SCHEMA PROFILING …"