|
|
Web服务器的优化技巧 |
|
问题: |
Web服务器的优化技巧
|
回答: |
有不同的步骤可以来微调服务器性能,这取决于技术水平和一个服务器是否具有Web。以下是这可能是有用的信息,特别是如果你的服务器表现不佳的情况,肯定会很有帮助!
操作系统
一般的规则是基于Linux的Web服务器是最容易调整为最佳性能,并为大多数人提供更容易使用的运行网站。对于一些有可能是轻微的问题,但是这是很容易克服。
使用基于Windows的服务器是比较复杂的,特别是由于安全性的弱点,设置文件权限的更是复杂的要求,难以配置服务。当然,有些人可能觉得不同,但大多数网络专业人员都同意Linux是更好的托管平台,可能会有一种罕见的情况,除非发生在该网站是只依赖于Windows平台上提供了非常具体的服务。
Web服务器引擎软件
最佳安全性的支持,建议使用Zen
Cart的Apache作为Web服务器引擎。
Apache
Zen Cart.Apache V2是必需的。
Apache必须设置AllowOverride设置为“全部”或“限额指标选项”。
没有这一点,你会在使用的时候收到错误,这是.htaccess的安全保护,防止黑客和钓鱼诈骗,阻止从您的网站内设置您的服务器被滥用的错误。 “内部服务器错误”的消息会出现,如果设置AllowOverride不支持这些的话。
IIS
如果你不幸被托管在Windows服务器上运行了IIS,而不是Apache,你将无法获得.htaccess的安全保护。在这种情况下,您将需要与您的托管公司合作,以另一种方式在IIS中重新创建这些保护。其中的许多是不可能复制的。
替代Web服务器引擎
如果你不使用Apache或IIS,你将有改变.htaccess的指令,以满足您的网络服务器的要求。在许多情况下,只能保护,不能被重新创建到其他的平台。
PHP参数
- memory_limit的应设置一个简单的基本使用16M或更高的小商店。 建议对较大数量的产品或许多插件的网站使用32M或64M。
- max_execution_time仅仅通常设置为60秒,这是比较好的。
- max_input_time通常设置为60秒,这是正常的,除非你正在做很大的文件,如巨大的照片或大型输入文件上传插件,像ezpopulate
- file_uploads必须设置为“开”,如果你希望能够上传文件,可以通过你的管理界面,或从您的客户收到文件
- 应设置为32M或更大的post_max_size,如果你上传大量的图片或大附件/进口
- 应设置为post_max_size的相同的upload_max_filesize
- 卷曲必须选择与OpenSSL的支持编译成PHP
- 应该启用gzip压缩:应加载的zlib扩展,并应设置为非零值zlib.output_compression
MySQL的优化
服务器的my.cnf文件包含在MySQL中,数据库引擎操作的配置设置。默认设置通常不是最佳使用状态,因此需要调整你的数据库运行平稳。
优化MySQL是一个专业人士的精心的技能,因为它是专业人士在此主题上所学的专业知识,花费了高的代价,因为它通常能为你提供具有竞争力的优势。
下面是一些与你可以尝试,如果控制超过MySQL配置(大多数店主不会有这种级别的访问,必须在其托管公司的服务器管理员支持下才能做这样的调整,因为它会影响到每个人运行的服务器)。
以下几点谈谈在my.cnf的设置与统计,可以发现在您的phpMyAdmin的屏幕上运行进程。
服务器内存
注意:当你调整到MySQL,你必须提供更多的内存,更多的空间。重要的是给MySQL和其他服务之间的谨慎平衡。
内存模型
超出标准设置,你需要增加内存分配。如果你没有申报在你的my.cnf大小,它会默认不足的。
所有的读/排序/加入缓冲区的大小设置,和总TMP
TMP表的大小,高速缓存大小设置加内存每个连接的最大连接数的乘积乘以表的总和应不超过90%的可用内存分配到MySQL
缓存
table_cache的应该足够大,在任何给定的时间来处理的open_tables数量,加上5-10%
的剩余空间,设置方法与之类似。
table_definition_cache
thread_cache_size需要足够大空间,用来支持Threads_Created和threads_cached
缓冲区
key_buffer的大小应设置为适合您的服务器上发生的指数使用量的水平。使用系统内存的15-20%。但是,如果这个值太大,那你就浪费资源,可以做的更好。
read_buffer_size应该是8M,通常比2M。增加它取决于一个持续的基础上发生table_scans。
read_rnd_buffer_size为 2M或更大才能获得更多优势。
join_buffer_size和sort_buffer_size经常为1M,但有时提高到2M,也会有帮助的。
tmp_table_size需要足够大,以处理查询联接创建的任何临时表的内存需求。写得不好,不恰当的索引的表联接,将创建此设置提出了更高的要求
连接
MAX_CONNECTIONS与max_used_connections - 不要设置max_connections的方式太高,否则你就是在浪费资源。 你max_used_connections应该超过10%的MAX_CONNECTIONS。
在Open_files打开max_open_files
- 你应使用低于75%的max_open_files设置
流程
你需要细化的子进程的数量,他们会在服务器中出现。你不需要在MySQL中有多余的空闲进程,因为这会浪费资源。这是一个组合MAX_CONNECTIONS
connect_timeout,WAIT_TIMEOUT,max_connect_errors
慢速查询日志
这可能是有用的设置记录慢查询,熟练地理解日志和改变查询的性能,从而使他人可以查看他们调整。
long_query_time设置一个值足够小,赶上运行慢的查询会有所帮助。这个数字可能需要一段时间的调整。 2可能是一个很好的起点值。
要知道这个日志可以很快变得非常大。
一般建议
使用您最喜爱的搜索引擎,看看mysql的调整或优化的文章。
你会发现在这个问题上,它实际上是一个平衡的行为。所以要确定什么是最适合你的。 |
|
当前评论: 0 | |
|
本问题添加时间是 2012年 05月 07日。 |
|
|
|
|