July 14, 2010
apache prefork优化及压力测试
"\u003cp\u003e优化apache prefork模式的参数, (384M内存openvz 的vps环境下面)\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;IfModule mpm_prefork_module\u0026gt;\nStartServers 12\nMinSpareServers 12\nMaxSpareServers 12\nMaxClients 12\nMaxRequestsPerChild 100\n\u0026lt;/IfModule\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eStartServers是启动的进程数,Min和Max是最小最大进程数, MaxClients是最大可连接的客户端,MaxRequestPerChild是一个进程的生命周期内处理的请求数量,一旦达到设定的这个值,就回收进程。\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e这里的vps环境是内存384M最大可用,openvz的vps.其它优化设置可以参考\u003c/p\u003e\n\u003cp\u003e测试一千个客户端并发时的压力,可以用apache自带的ab.exe。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eab -n 1000 -c 1000 \u003ca href=\"http://www.netroby.com/index.php\"\u003ehttp://www.netroby.com/index.php\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e测试结果:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eServer Software: …\u003c/code\u003e\u003c/pre\u003e"
July 13, 2010
发现瓶颈 – Profiling(程序剖析) -MySQL Profiling
"\u003cp\u003e\u003cstrong\u003eMySQL程序剖析 (Profiling)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e我们将要详细的讲到MySQL的剖析(Profiling),因为它很少依赖于你的应用。应用和服务器 级别的剖析有的时候都是有必要的。虽然应用级别的剖析可以给你整个应用性能的总揽。,但是对MySQL的剖析提供了信息是服务器级别所提供不了的。比如, 对PHP代码进行剖析不会显示MySQL有多少行语句执行了。\u003c/p\u003e\n\u003cp\u003e与应用剖析一样,目标是找出MySQL哪部分消耗过多的时间。我们不会剖析MySQL源码的,虽然有的 时候定制化MySQL安装很有用,但是这是另一本书的主题了。所替代的是,我们将教你一些可以技术来获取和分析不同种类的MySQL执行语句的信息。\u003c/p\u003e\n\u003cp\u003e你可以用在任意的颗粒级别以满足你的需求:你可能对整个服务器进行剖析或者单独检查一个语句或者一组语 句。下列信息你可以一点点的收集:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMySQL经常访问的那些数据\u003c/li\u003e\n\u003cli\u003eMySQL经常执行语句的类型\u003c/li\u003e\n\u003cli\u003eMySQL线程大部分时间的状态\u003c/li\u003e\n\u003cli\u003eMySQL经常执行语句的子系统\u003c/li\u003e\n\u003cli\u003eMySQL执行语句所访问的数据类型\u003c/li\u003e\n\u003cli\u003e不同活动的类型,比如扫描索引。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e我们先从范围最广的剖析开始,那就是服务器剖析,将教你更多细节。 …\u003c/p\u003e"
July 13, 2010
查看mysql索引使用情况
"\u003cp\u003e查看索引使用情况\u003c/p\u003e\n\u003cp\u003e如果索引正在工作, Handler_read_key 的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。\u003c/p\u003e\n\u003cp\u003eHandler_read_rnd_next 的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引。\u003c/p\u003e\n\u003cp\u003e语法:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emysql\u0026gt; show status like ‘Handler_read%’;\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e有关更多MySQL之Handler_read_*介绍参考:\u003c/p\u003e"
July 13, 2010
mysql中使用source命令恢复sql备份文件时出现的问题
"\u003cp\u003e当使用mysql做数据库还原的时候,由于有些数据很大,总是失败并决 MySQL server has gone away之类的信息,并自动重新连接数据库且自动继续执行恢复操作,此时没有办法重新指定字符集,容易出现乱码,导致数据库恢复失败,只需要修改max_allowed_packet 参数的值即可.\u003c/p\u003e\n\u003cp\u003emysql根据配置文件会限制server接受的数据包大小。\u003c/p\u003e\n\u003cp\u003e有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。\u003c/p\u003e\n\u003ch2 id=\"1-方法1\"\u003e1) 方法1\u003c/h2\u003e\n\u003cp\u003e可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emax_allowed_packet = 20M\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e如果找不到my.cnf可以通过\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql --help | grep my.cnf\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e去寻找my.cnf文件。\u003c/p\u003e\n\u003ch2 id=\"2-方法2\"\u003e2) 方法2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e(很妥协,很纠结的办法)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e进入mysql server\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql -h 主机 -u 账号 -p密码\nset global max_allowed_packet = 2*1024*1024*10\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e然后关闭掉这此mysql server链 …\u003c/p\u003e"
July 11, 2010
[教程]freebsd下nagios安装教程
"\u003cp\u003e一、安装apache\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /usr/ports/www/apache2\nmake install clean\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e二、安装nagios和 Nagios-plugin\u003c/p\u003e\n\u003cp\u003e1.安装nagios主程序\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /usr/ports/net-mgmt/nagios\nmake install clean\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e在安装的过程中会自动安装nagios-plugin插件.常用的脚本这时会被安装在” \u003cstrong\u003e/usr/local/libexec/nagios/\u003c/strong\u003e“路径在resource.cfg里面有定义的,即常量 $USER1$的值目录里.\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003eNRpe 下载地址为: \u003ca href=\"http://www.nagios.org/download/addons\"\u003ehttp://www.nagios.org/download/addons\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e//如果所要监控的服务器中有linux,不要直接使用ports 安装,因为ports安装过后,其格式为check_nrpe2, 但是linux 采用源码安装的为check_nrpe. 从而导致两者之间不能通信\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#cd /usr/local\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e#fetch …\u003c/p\u003e"
July 11, 2010
FreeBSD利用poptop架设vpn指南
"\u003cp\u003e安装poptop\ncd /usr/ports/net/poptop\nmake install clean\n===\u0026gt; SECURITY REPORT:\nThis port has installed the following files which may act as network\nservers and may therefore pose a remote security risk to the system.\n/usr/local/sbin/pptpd\u003c/p\u003e\n\u003cp\u003eThis port has installed the following startup scripts which may cause\nthese network services to be started at boot time.\n/usr/local/etc/rc.d/pptpd\u003c/p\u003e\n\u003cp\u003ecd /usr/local/etc\ncp pptpd.conf.sample pptpd.conf\nvi pptpd.conf\ncd /usr/ports/net/poptop\nmake install clean\u003c/p\u003e\n\u003cp\u003e三、设 …\u003c/p\u003e"
July 11, 2010
centos下安装Nagios服务器监控软件
"\u003cp\u003enagios可以对服务器进行全面的监控,包括服务(apache、mysql、ntp、dns、disk、qmail和sshd等等)的状态,服务器的状态(up、down等\u003c/p\u003e\n\u003cp\u003e等)。它是一个完全GPL协议的开源软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,可以自定义shell脚\u003c/p\u003e\n\u003cp\u003e本进行监控服务,非常适合大型网络。\u003c/p\u003e\n\u003cp\u003enagios的包含主动监控和被动监控。\u003c/p\u003e\n\u003cp\u003e主动检查是通过监控中心的主机发出请求,让运行在远程主机上的nrpe守护进程收集信息,然后报告它,它通过web接口把数据显示在页面上。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e它的工作原理如下:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e被动监控是当远程被监控主机处于防火墙之内的时候,只有远程主机可以访问到监控中心,防火墙之内可以设置另外一个监控中心,远程监控\u003c/p\u003e\n\u003cp\u003e中心的nagios收集服务器信息以后,和nsca报告,由naca客户端报告naca的服务器端,然后报告监控中心的nagios,通过web接口显示监控结果。\u003c/p\u003e\n\u003cp\u003eNagios是一个监视系统和网络的应用程序。它监视你所指定主机和服务,当监视的内容变好或者变坏时发出警告。Nagios最初是被设计在Linux\u003c/p\u003e\n\u003cp\u003e平台上运行的,然而现在在其他平台上也 …\u003c/p\u003e"
July 9, 2010
show profiles 详解
"\u003cp\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.7/en/show-profile.html\"\u003ehttps://dev.mysql.com/doc/refman/5.7/en/show-profile.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e此功能将在新版本中被移除,性能分析使用新方法来代替。(官方提供了此命令的使用方法, 对于 show profile for query ID / show profile \u003cstrong\u003eCPU\u003c/strong\u003e for query ID 结果中每项的说明信息请参考: \u003ca href=\"https://www.cnblogs.com/itcomputer/articles/5056127.html\"\u003ehttps://www.cnblogs.com/itcomputer/articles/5056127.html\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThese statements are deprecated and will be removed in a future MySQL release. Use the Performance Schema instead; see \u003ca href=\"https://dev.mysql.com/doc/refman/5.7/en/performance-schema.html\" title=\"Chapter 25 MySQL Performance Schema\"\u003eChapter 25, \u003cem\u003eMySQL Performance Schema\u003c/em\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e对于新版本我们也可以直接查询 \u003ccode\u003eINFORMATION_SCHEMA\u003c/code\u003e \u003ca href=\"https://dev.mysql.com/doc/refman/8.0/en/profiling-table.html\" title=\"25.20 The INFORMATION_SCHEMA PROFILING Table\"\u003e\u003ccode\u003ePROFILING\u003c/code\u003e\u003c/a\u003e . See \u003ca href=\"https://dev.mysql.com/doc/refman/8.0/en/profiling-table.html\" title=\"25.20 The INFORMATION_SCHEMA PROFILING Table\"\u003eSection 25.20, “The INFORMATION_SCHEMA PROFILING …\u003c/a\u003e\u003c/p\u003e"
July 8, 2010
Linux命令:ifconfig
"\u003ch2 id=\"linux命令ifconfig\"\u003eLinux命令:ifconfig\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e功能说明\u003c/strong\u003e:显示或设置网络设备\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e英文说明:\u003cstrong\u003enetwork \u003cstrong\u003ei\u003c/strong\u003enter\u003c/strong\u003ef\u003c/strong\u003eaces \u003cstrong\u003econfig\u003c/strong\u003euring\u003c/p\u003e\n\u003ch3 id=\"语法\"\u003e语法\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e语 法\u003c/strong\u003e:ifconfig [网络设备][down up -allmulti -arp -promisc][add\u0026lt;地址\u0026gt;][del\u0026lt;地址\u0026gt;][\u0026lt;硬件地址\u0026gt;] [media\u0026lt;网络媒介类型\u0026gt;][mem_start\u0026lt;内存地址\u0026gt;][metric\u0026lt;数目\u0026gt;][mtu\u0026lt;字节\u0026gt;][netmask\u0026lt;子网掩码\u0026gt;][tunnel\u0026lt;地址\u0026gt;][-broadcast\u0026lt;地址\u0026gt;] [-pointopoint\u0026lt;地址\u0026gt;]\u003c/p\u003e\n\u003ch3 id=\"补充说明\"\u003e补充说明\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e补充说明\u003c/strong\u003e:ifconfig可设置网络设备的状态,或是显示目前的设置。\u003c/p\u003e\n\u003ch3 id=\"参数\"\u003e参数\u003c/h3\u003e\n\u003cp\u003e[网络设备] 网络设备的名称。\u003c/p\u003e\n\u003cp\u003edown 关闭指定的网络设备。\u003c/p\u003e\n\u003cp\u003eup 启动指定的网络设备。\u003c/p\u003e\n\u003cp\u003e-arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于关闭该选项。\u003c/p\u003e\n\u003cp\u003e-allmuti 关闭或启动指定接口的无区别模式。前面加上一个负号用于关闭该 …\u003c/p\u003e"
July 8, 2010
ubuntu关机命令
"\u003cp\u003e\u003cstrong\u003e1. 关机命令 shutdown\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。\u003c/p\u003e\n\u003cp\u003e1)shutdown –help\u003c/p\u003e\n\u003cp\u003e可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。\u003c/p\u003e\n\u003cp\u003e2) shutdown -h now 现在立即关机\u003c/p\u003e\n\u003cp\u003e3)shutdown -r now 现在立即重启\u003c/p\u003e\n\u003cp\u003e4)shutdown -r +3 三分钟后重启\u003c/p\u003e\n\u003cp\u003e5)shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机\u003c/p\u003e\n\u003cp\u003e6)shutdown -r 20:23 在20:23时将重启计算机\u003c/p\u003e\n\u003cp\u003e7)shutdown -r 20:23 \u0026amp; 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. 中断命令\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1)执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令\u003c/p\u003e\n\u003cp\u003e2)kill 程序编码\u003c/p\u003e\n\u003cp\u003e当命令在后台执行时系统会返回一个程序编码,例如:在使用 shutdown -r 20:23 \u0026amp; 系统返回系统编 …\u003c/p\u003e"
July 8, 2010
ubuntu查看内核版本和发行版本
"\u003cp\u003e查看 \u003cstrong\u003e内核\u003c/strong\u003e 版本:\u003c/p\u003e\n\u003cp\u003e方法一:uname -r\n输出:\n2.6.32-23-generic\n方法二:cat /proc/version\n输出:\nLinux version 2.6.32-23-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #37-Ubuntu SMP Fri Jun 11 07:54:58 UTC 2010\u003c/p\u003e\n\u003cp\u003e查看 \u003cstrong\u003e发行\u003c/strong\u003e 版本:`\u003c/p\u003e\n\u003cp\u003e方法一:cat /etc/issue`\n输出:\nUbuntu 8.04 \\n \\l\n方法二:lsb_release -a\n输出:\nNo LSB modules are available.\nDistributor ID: Ubuntu\nDescription: Ubuntu 10.04 LTS\nRelease: 10.04\nCodename: lucid\u003c/p\u003e"
July 8, 2010
ubuntu手动设置IP/DNS地址的方法
"\u003cp\u003eUbuntu的网络参数保存在文件 /etc/network/interfaces中,默认设置使用dhcp,内容如下:\u003c/p\u003e\n\u003cp\u003e# The primary network interface\nauto eth0\niface eth0 inet dhcp\u003c/p\u003e\n\u003cp\u003e设置静态ip的方法如下:\n1) 编辑 /etc/network/interfaces\n1.1)将dhcp 一行屏蔽\n# The primary network interface\nauto eth0\n#iface eth0 inet dhcp\n1.2)添加和静态ip有关的参数\u003c/p\u003e\n\u003cp\u003e# The primary network interface\niface eth0 inet static\naddress 192.168.0.10\nnetmask 255.255.255.0\ngateway 192.168.0.1\u003c/p\u003e\n\u003cp\u003e2)编辑 /etc/resolv.conf,设置dns\nnameserver 202.96.134.133\nnameserver 202.106.0.20\u003c/p\u003e\n\u003cp\u003e3)执行下面两个命令,启用新设置\n\u003cstrong\u003e$sudo ifdown eth0\n$sudo …\u003c/strong\u003e\u003c/p\u003e"
July 8, 2010
ubuntu开启SSH服务
"\u003cp\u003e网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务。最终成功的方法如下:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003esudo apt-get install openssh-server\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eUbuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。\u003c/p\u003e\n\u003cp\u003e然后确认sshserver是否启动了:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eps -e |grep ssh\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。\u003c/p\u003e\n\u003cp\u003essh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003esudo /etc/init.d/ssh resar\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003essh连接:ssh \u003ca href=\"mailto:xjtu129@202.117.15.165\"\u003exjtu129@202.117.15.165\u003c/a\u003e\u003c/p\u003e"
July 7, 2010
再跟 Flickr 学习网站运维经验
"\u003cp\u003e学习了一下 Flickr 的运维工程师 John Allspaw 的这个\u003ca href=\"http://www.slideshare.net/jallspaw/operational-efficiency-hacks-web20-expo2009\"\u003eOperational Efficiency Hacks\u003c/a\u003e 讲座内容。做一点笔记。\u003c/p\u003e\n\u003cp\u003e现在 Flickr 的数据相比\u003ca href=\"http://www.dbanotes.net/web/flickr_lamp_capacity_planning.html\"\u003e2007 年\u003c/a\u003e的时候真是有了显著的增长:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e24 TB 的 MySQL 数据\u003c/li\u003e\n\u003cli\u003e每秒钟 MySQL 有 3.2 万次写操作\u003c/li\u003e\n\u003cli\u003e每秒钟 MySQL 有 12万次读操作\u003c/li\u003e\n\u003cli\u003e图片容量 6 PB\u003c/li\u003e\n\u003cli\u003e每天要用掉 10TB 存储\u003c/li\u003e\n\u003cli\u003e超过 15000 个服务监控点\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e在 2004 年的时候 ,Flickr 使用 \u003ca href=\"http://www.imagemagick.org/\"\u003eImageMagick\u003c/a\u003e (version 6.1.9)之后转移到 \u003ca href=\"http://www.graphicsmagick.org/\"\u003eGraphicsMagick\u003c/a\u003e, 我还\u003ca href=\"http://www.dbanotes.net/arch/yupoo_arch.html\"\u003e以为\u003c/a\u003e是因为版权问题,现 在知道这样做是因为速度,换用 GraphicsMagick 处理速度提升了 15%,而 ImageMagick 功能尽管强大,但都是 Flickr 用不到的功能。如无必要,勿增实体啊。GraphicsMagick 在并行方面(\u003ca href=\"http://openmp.org/wp/\"\u003eOpenMP\u003c/a\u003e)的支持也很不错(\u003ca href=\"http://www.kitchensoap.com/2008/09/02/why-we-use-graphicsmagick/\"\u003e参 考\u003c/a\u003e)。\u003c/p\u003e\n\u003cp\u003e除了技术手段的优化,Flickr 充分利用硬件本身的更新换代带来的好处,曾经用 18 台新机器替换掉原来的 67 台 Web 服务器, …\u003c/p\u003e"
July 7, 2010
高并发高流量网站架构
"\u003cp\u003eWeb2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也 极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了 新的要求。\u003c/p\u003e\n\u003cp\u003e本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容:\u003c/p\u003e\n\u003cp\u003e首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较。然后在局域网层次对第四层交换技术,包括硬 件解决方案F5和软件解决方案LVS,进行了简单的讨论。接下来在单服务器层次,本文着重讨论了单台服务器的Socket优化,硬盘级缓存技术,内存级缓 存技术,CPU与IO平衡技术(即以运算为主的程序与以数据读写为主的程序搭配部署),读写分离技术等。在应用层,本文介绍了一些大型网站常用的技术,以 及选择使用该技术的理由。最后,在架构的高度讨论了网站扩容,容错等问题。\u003c/p\u003e\n\u003cp\u003e本文以理论与实践相结合的形式,结合作者实际工作中得到的经验,具有较广泛的适用性。\u003c/p\u003e\n\u003cp\u003e1 引言\u003c/p\u003e\n\u003cp\u003e1.1 互联网的发展\n最近十 …\u003c/p\u003e"