首先,我不得不说我不是服务器pipe理方面的专家。 我已经在几个平台上完成了10多年的networking编程,但是大部分时间都来到了IT专业人员或者一个好的networking托pipe公司的现成情况。
现在我终于在一个需要从零开始构buildLAMP-setup的地方(只用一个香草CentOS安装)来提供非常强大的Wordpress设置。
一切都比较顺利,因为我一直在使用基于Linux的服务器pipe理来阻止事情的发展,但是我每周都会遇到一些非常奇怪的系统冻结,因为我是唯一一个可以访问服务器的人,启动服务,这是非常恼人的。
以下是一些关键数据:
服务器
用法
事情做完了:
我把问题的范围缩小到内存pipe理 – 或者是缺乏内存pipe理。 出于某种原因,在服务器上禁用了交换function,一旦内存消耗达到100%,服务器就会进入抖动状态,所有希望都将消失。 内存的数量(384MB)仍然足以承载这些统计的网站,所以有些事情是错误的。 我只是想尽一切办法。
我显然尝试调整my.cnf,php.ini和httpd.conf中的设置,但无济于事。 这是我目前的关键设置:
my.cnf中
skip-innodb datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-locking skip-ndbcluster skip-bdb skip-networking safe-show-database query_cache_limit=8M query_cache_size=48M query_cache_type=1 max_user_connections=200 max_connections=32 interactive_timeout=60 wait_timeout=60 connect_timeout=50 thread_cache_size=4 key_buffer= 96M join_buffer=1M max_connect_errors=20 max_allowed_packet=32M table_cache=1024 record_buffer=1M sort_buffer_size=6M read_buffer_size=6M read_rnd_buffer_size=6M thread_concurrency=4 myisam_sort_buffer_size=32M server-id=1 user=mysql tmp_table_size=64M max_heap_table_size=48M
php.ini中
memory_limit = 128M
httpd.conf文件
StartServers 2 MinSpareServers 3 MaxSpareServers 5 ServerLimit 16 MaxClients 16 MaxRequestsPerChild 1000
这是可能是非常明显的,我在我的裤子坐在这里飞行的部分。 对于384MB服务器设置,这些设置对于远程设备来说是非常明智的吗 还有什么可以做的,以减less崩溃的数量唯一的解决办法是我login重新启动mysqld和httpd?
我知道所有这些或多或less已经被讨论了一百万次,并且相信我,我已经经历了从Server Fault发现的所有线程,尝试了所有的提示和指针,但是无济于事。
愚蠢的是,我们从一个非常可靠的networking托pipe设置转移到这种方式更昂贵的虚拟服务器设置,以减less对服务器稳定性和扩展的担心,但事实上,事情变得更糟,无疑99%,由于我作为pipe理员自己的缺点!
所以请大人帮我一下 我保证我永远不会对任何IT人员嗤之以鼻,只会编写易于部署的代码,不会在半夜崩溃,除了“系统pipe理员日”以外,在其他日子里通常会以积极的方式记住您。
如果你没有交换分区,你仍然可以像这样设置交换文件
dd if = / dev / zero of = / swapfile1 bs = 1024 count = 524288
mkswap / swapfile1
swapon / swapfile1
echo“/ swapfile1 swap swap defaults 0 0”>> / etc / fstab
Web服务器交换仍然会降低性能,但它不会停下来。