我有一个小网站,安装了 Joomla 和 Moodle。这两个网站似乎都很慢。服务器(CentOS 版本 5.5(最终版))是一个虚拟专用服务器,内存约为 2GB。我预计不会同时有超过 10-15 人同时在线(如果这个数字很高的话)
我可以在 apache、mysql 甚至操作系统中更改哪些设置来提高网站的性能?
如果访客太多,我并不担心资源耗尽。
如果您需要更具体的数据,请发表评论,我会编辑问题。
数据库速度:
+--------------------+----------------------+------------------+
| Data Base Name | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| information_schema | 0.00390625 | 0.00000000 |
| joomla | 0.33125496 | 0.07981014 |
| moodle | 7.73092937 | 0.01922131 |
| mysql | 0.52505302 | 0.00000000 |
| phpmyadmin | 0.01499939 | 0.00106049 |
+--------------------+----------------------+------------------+
5 rows in set (0.07 sec)
Apache 加载的模块:
core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_default mod_include mod_log_config mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate mod_headers mod_setenvif mod_mime mod_status mod_autoindex mod_info mod_negotiation mod_dir mod_alias mod_rewrite mod_cache mod_suexec mod_disk_cache mod_file_cache mod_cgi mod_version mod_php5 mod_ssl
$ cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#don't use old password format
old_passwords=0
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links=0
#Alwaysuse the better InnoDB
default-storage-engine=InnoDB
innodb_buffer_pool_size=512
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
我在找具体设置改变这一点将会提高服务器的速度。
答案1
Mysql 总是喜欢 RAM。将(至少大多数)表(joomla 和 moodle 中的,而不是其他的)转换为 InnoDb 格式并增加使用的内存也会对速度有很大帮助。innodb_buffer_pool_size 是 mysql 配置。使用的默认大小只有 8MB - 如果您的数据库真的那么小(坦率地说,如果真的使用它,我会对这么小感到有点惊讶),那么给它 16MB 也会有所不同,而且更有可能的是,我还是会给它 512MB 的 innodb_buffer_pool_size。由于所有数据库内容都在内存中,因此几乎不需要考虑磁盘。
安装调试将允许您逐个功能、逐行地找出网站中哪些部分运行缓慢。 网磨将解析 Xdebug 的输出以显示给您。
要了解更多信息,您需要收集一些有关服务器正在做什么的统计数据 - 比如运行 colcted,然后查看正在生成的图表。即使只是查看“top”的输出,在命令行上运行也可以帮助了解正在发生的事情。