这个问题最初是在stackoverflow.com,但我被告知我可能会得到一个更好的答案在这个网站上…
很快,我将为一个网站非常繁忙的客户build立一个Web服务器。 他有一个论坛(运行在简单机器论坛 SMF用PHP编写),不能真正改变。 我想把它移动到一个单独的虚拟专用服务器上,因为它每天大约有40000次点击,每天有400多个post,非常繁忙。 随着SMF的版本(最好,最稳定的生产版本1.1)它需要运行MySQL,所以我不能改变它到PostgreSQL(我可能会更喜欢)
在Ubuntu Server 10 LTS上安装MySQL服务器时,我很想知道是否有任何事情可以做,以确保它是最有效率的。 我希望尽可能快地运行,以保持资源不变,并确保我们可以保持在服务器的资源限制之下。 使用虚拟专用服务器,我可以select在闪存中切换资源,但是我希望确保MySQL服务器的安装尽可能高效,因为我不是那种types的专家。
我正在做一些研究,并find一篇文章,build议这样做,以确保它是有效的:
# open mysql conf and set these settings: # key_buffer = 16k # max_allowed_packet = 1M # thread_stack = 64K nano /etc/mysql/my.cnf # restart mysql /etc/init.d/mysql restart
任何人都可以提供一些提示,提示,链接,关于这个问题的知识?
首先; Janne是正确的:40k读取和400每天写入是零负载。 几乎所有的设置都不应该有性能上的缺陷。
我正在使用SMF在VPS上运行类似的设置。 我发现它利用caching机制,因为它利用APC。
我的设置(我向你推荐):
首先,每天有40000次点击,而每天有400多个post听起来不像是什么让MySQLstream汗的东西。 如果每天传播40 000次,每天点击40 000次,意味着每三分钟后有一个新的post。
而这并不多。 真。
您没有提及正在使用的存储引擎。 使用MyISAM表,您需要特别调整key_buffer和table_cache值。 使用InnoDB表innodb_buffer_pool_size是最重要的一个。
在你的例子中key_buffer = 16k听起来很奇怪。 一个16千字节的key_buffer? 没办法,至less16M(兆字节),或者如果你的服务器有一个体面的内存量,那么它可以更多。 请注意,尽pipe许多MySQLvariables是连接特定的,而不是全局值,所以如果你的服务器负载意味着成千上万的同时MySQL连接,那么你需要调低这些值,但是如果你通常只有less量的连接,数据集,那么你需要调整值。