July 15, 2010
Centos系统mysql相关命令
"Centos系统mysql 忘记root用户的密码:\n第一步:(停掉正在运行的mysql)\n[root@CentOs5 ~]# service mysqld stop\nStopping MySQL: [ OK ]\n第二步:使用 “–skip-grant-tables”参数重新启动mysql\n[root@CentOs5 ~]# mysqld_safe –skip-grant-tables \u0026amp;\n[1] 23810\n[root@CentOs5 ~]# Starting mysqld daemon with databases from /var/lib/mysql\n第三步:用帐号登录mysql\n[root@CentOs5 ~]# mysql -u root\nWelcome to the MySQL monitor. Commands end with ; or \\g.\nYour MySQL connection id is 1\nServer version: 5.0.77 Source distribution\nType ‘help;’ or ‘\\h’ for help. Type …"
July 15, 2010
FreeBSD中top命令参数说明
"top监控命令在FreeBSD上的使用 top监控工具可以显示CPU占用率为前几位的进程,并提供CPU的实时活动情况\n语法:top [-s time] [-d count] [-q] [-h] [-n number] [-f filename] [-o field][-U usename] -S 将系统进程信息也显示到屏幕上,默认情况下,top不显示系统进程的信息 -b 使用”batch”方式运行top。在此种方式下,所有来自终端的输入都将被忽略,但交互键(比如^C and ^) 依然起使用。这是运行top输出到哑终端或输到非终端的默认运行方式 -i 使用交互运行top程序,在此种方式下,命令会被进程立即被处理。不管命令是不是能被top所理解执行, 屏幕都将立即更新。这是top的默认运行方式。 -I 不显示空闲进程,在默认情况下,top连同空闲进程的信息一同输出。 -t 不显示top进程自己 -n 不以交互方式使用top命令,作用同”batch”方式。 -s time 设置屏幕刷新的延时,单位为秒,默认值5秒 -d count 设置屏幕刷新的次数,刷新显示完count次后退出 -q 如 …"
July 15, 2010
Apache最大连接数性能测试
"Apache最大连接数性能测试。\n这天工作没什么事情,翻开看资料,再次学习一下apache的性能优化,以下就说说我的设置及测试。\n先说一下我的测试机硬件及软件配置环境:\n硬件:一台比较古老的机器,cpu: P42.0 ,内存256,其他的就不多说了。\n软件:linux as 4 , apache2.0.59。\n先说一下这次安装及配置就是测试apache的性能,如果你打算看其他方面的,那就不要看了,因为偶也没有写,嘿嘿嘿……\n./configure –prefix=/usr/local/apache2 –with-mpm=worker –enable-so\n说明:\nMPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}\n我这里mpm使用的是worker,以下说明一下mpm个参数;\nMPM的引入是Apache 2.x最重要的变化,影响apache2.x 性能的最核心特性,\nMPM(Multi -Processing Modules,多道处理模块),运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比 …"
July 14, 2010
apache你必须知道的一些知识
"一下是网管的一些面试题的,大部分和apache 有关,所以记下来供学习参考之用.\n1,你认为组成web站点体系有哪些元素?\n2,这样的配置,在apache起来后会有几个子进程? (别把这个问题想的简单化)\nStartServers 5 MinSpareServers 50 MaxSpareServers 100 MaxClients 150 MaxRequestsPerChild 0\n3,在apache的worker MPM中,为什么ServerLimit要放到配置段最前面?\n4,千兆网卡的极限pps是多少?是如何算出来的?\n5,为什么lighttpd,nginx的并发性能比apache要高?\n6,top命令里running的值表示什么意思?这个值和CPU数有什么关系?\n7,在http header头里看到的:Last-Modified,Expires,max-age,etag这四者有什么关系?\n8,一个web站点,如何计算所需要的带宽?公式是什么?\n9,如何看http的并发连接数的?\n10,FIN_WAIT2是在什么状态?\n11,iostat看到的: wsec/s = 600 那 …"
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链 …"