这是我在这里的第一个问题所以请不要对我这么强硬......:P
我通常倾向于谷歌我的方式解决方案,但现在我赶时间,已经用尽了我所拥有的所有资源......
因为我的网站是商业网站,所以继续支付某人帮助我是公平的但是......我自己有一些财务问题,这是我专用服务器的第3个月付款,仍然是自从我的网站真正上线以来的第一个月...我已经完成了所有这一切,因为我买不起任何人,并且没有广告,因为我认为我现在不会得到任何东西而且广告只会没用...虽然我打算在我网站的生活中使用广告,但我没有从(至少对我的预算)昂贵的服务器租金中获得一分钱...... :(
这是我的问题: 我有一个专用的服务器,直到几天前我的流量开始上升...好几天,我一直从我的服务器收到来自我的CPU状态监视器的电子邮件... 它就像是全力以赴,我试图找出原因并修复问题!...
我非常绝望所以请帮助我!
这是我最新的统计数据(尽管他们已经这样了4天......)
08:02:35 up 12 days, 14:39, 0 users, load average: 25.82, 25.98, 25.92
我使用统计计数器,我认为它们非常准确(代码在每个页面上,所以这些是我网站的全局结果)... 我的统计数据是:
Page Loads Unique Visits
10,367 1,843
我的主要页面是index.php
和videos.php
(我运行视频网站顺便说一句)
索引和videos.php页面总是使用大约140-150-160%的cpu 我的意思是吧? 他们使用超过100%?喜欢借钱还是什么?
他们都做的是:检查 - 并且如果通过了 - 查询和页码 查询数据库,从表中获取结果并显示它们
我将mysql_connect
用于从mysql中获取的所有内容。
我听说mysql中的永久连接是大量查询的可能解决方案,但也读到了安全问题导致的这种方法的很多缺点......
请指教?
我的数据库是myisam engined
我有2个主要表格:游戏和视频
沿着它们大约有5-6000个用于存储注释的表...
games table: 9 columns
id - primary
name - fulltext - used by my search
videos table: 17 columns
indexes:
id-primary
title,tags-fulltext-used by search
其余表用于注释,但除了id字段之外没有任何索引。 他们只保留评论和日期。 当我加载搜索页面时,所有数据都来自db: 搜索关键字,获取最相关,然后回显与匹配项目相关的所有数据。 打开视频页面时,某个数据库中的所有注释都会被加载并显示在一个框中。
我可以做些什么来降低处理能力?
另外,我的支持团队只是通过电子邮件发送给我:
我们已经将表缓存增加到了12000,现在请检查它是怎么回事。而且最好还是得到一个最适合你工作环境的my.cnf文件,这里将mysql变量设置为默认值价值观。
我刚刚在谷歌上阅读了有关my.cnf
文件的内容,但与我的案例无关......
有人可以告诉我我的my.cnf
文件应包含哪些内容?与我的想法有关吗?
我在这里有我的服务器信息,但它需要一些空间...我怎么能以某种方式关闭它而你只有在你想读的时候打开?没有使用链接?
我应该像这样张贴在这里吗? 如果主持人读到这个并且可能以某种方式崩溃,请这样做!
Server Information:
-------------------------------------------------------
Processor Information
Total processors: 6
Processor #1
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Processor #2
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Processor #3
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Processor #4
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Processor #5
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Processor #6
Vendor
AuthenticAMD
Name
AMD Phenom(tm) II X6 1055T Processor
Speed
2800.000 MHz
Cache
512 KB
Memory Information
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
Memory: 7917400k/8912896k available (2575k kernel code, 208164k reserved, 1304k data, 212k init)
System Information
Linux nrgysrv1.hostrprv1.com 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
Physical Disks
SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
sd 0:0:0:0: Attached scsi disk sda
SCSI device sdb: 2930277168 512-byte hdwr sectors (1500302 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
SCSI device sdb: 2930277168 512-byte hdwr sectors (1500302 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
sd 3:0:0:0: Attached scsi disk sdb
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 3:0:0:0: Attached scsi generic sg1 type 0
Current Memory Usage
total used free shared buffers cached
Mem: 7920256 7873744 46512 0 61148 6980096
-/+ buffers/cache: 832500 7087756
Swap: 4192956 184 4192772
Total: 12113212 7873928 4239284
Current Disk Usage
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 1.4T 636G 645G 50% /
/dev/sda1 99M 18M 77M 19% /boot
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/sdb1 1.4T 291G 1016G 23% /backup
/usr/tmpDSK 485M 11M 449M 3% /tmp
----------------------------------------------------
我认为这是我的所有信息。
如果你怜悯我,请帮助!... 感谢一百万次!热点
答案 0 :(得分:4)
索引和videos.php页面总是使用大约140-150-160%的cpu我的意思是吧?他们使用超过100%?喜欢借钱还是什么?
不,负载表示为每个CPU一个单元,因此如果您的服务器有四个CPU,则负载为1.00(或100%)意味着一个CPU处于满负载状态,另外三个处于空闲状态(或者两个是在50%负载和其他两个0%或任何类似组合)和4.00(或400%)的负载意味着所有CPU都满负荷。
我使用mysql_connect获取从mysql获取的所有内容。我听说mysql中的永久连接是大量查询的可能解决方案,但也读到了安全问题引起的这种方法的很多缺点......请指教一下?
为什么它应该是安全问题?如果误用,它可能是性能问题,但绝对不是安全问题。
从你写的内容来看,你似乎对关系数据库和网络开发都是一个新手,我建议的第一步是购买一本数据库书籍,了解它们是如何工作的以及如何使用它们,然后是好的关于PHP的书。否则,您将programming by coincidence,永远不会解决您的问题。
顺便说一下,如果你是新手(而且你知道的话),你应该阅读the FAQs,How to ask和Editing help。
答案 1 :(得分:3)
首先,隔离问题。如果问题的根本原因在于您的PHP代码,那么调整MySQL是没有意义的。
您的支持称他们“将表缓存增加到12000”,因此他们可能将table_open_cache的值从400(默认)增加到12000.(您可能不应该有6000个表。重新考虑该设计。)
对于MySQL,请研究MySQL文档的这些部分。
调整MySQL服务器时,两者 要配置的最重要的变量 是key_buffer_size和 table_open_cache。你应该先 有信心你有这些设置 在尝试改变之前适当 任何其他变量。
MySQL提供了许多 可以预先配置的选项文件 用作调整MySQL的基础 服务器。寻找诸如此类的文件 my-small.cnf,my-medium.cnf, my-large.cnf和my-huge.cnf,其中 是小的样本选项文件, 中型,大型和超大型系统。
您还应该有一个本地或远程系统进行测试。
答案 2 :(得分:1)
我认为问题是每个视频都有一个单独的表格。所有评论(或其他)都应该存储在SAME表格中,并附上video_id或类似内容,以便将它们链接回相关视频。