我主持一个PHP / MySQL应用程序与我的服务器上的Smartycaching。 它通常通过推特向数以千计的追随者获得短暂的交通高峰。 stream量高达每秒6点,持续20-30分钟。 后来减less到不到一秒钟的命中。 在峰值期间,响应时间变得非常糟糕,并且要等待超过两分钟才能提供页面。 我如何pipe理这个? 如何找出我的服务器上的瓶颈? 我有一个1GB的RAM服务器托pipe在一个云与CPU扣人心弦。 我应该购买更多的CPU还是更多的内存?
我正在寻找获取有关超过特定CPU限制的进程的进程信息。 例如: #!/usr/bin/env python def get_processes_over_usage(cpu_usage): #Find the processes. return processes 具体来说,我正在寻找进程的可执行文件和用户名。 谢谢! 这里是答案,我只是不能发布它:这不完全符合要求,但它是足够接近。 #!/usr/bin/env python import commands def get_processes(): output = commands.getoutput('/usr/bin/top -n 1') lines = output.split('\n') header = ['PID', 'USER', 'PR', 'NI', 'VIRT', 'RES', 'SHR', 'S', '%CPU', '%MEM', 'TIME+', 'COMMAND'] header_found = False processes = [] for line in lines: data = line.split() […]
我在反向代理模式下使用nginx。 这里是configuration文件的相关部分: server { listen 80; server_name ~^web.redhelper\.ru$ ; access_log off; location /http-bind { proxy_pass http://localhost:7070; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } } 一段时间后,我开始打500错误。 我认为我正在达到一些最大的开放连接限制。 这里是munin图: 当我使用netstat时,我看到有: 1279 open connections to port 80; (including website itself that is on the same port) of them 745 are in ESTABLISHED state and 479 in TIME_WAIT 277 […]
好吧,我有一个很好的专用服务器,运行CentOS 6 16克内存,双氙气处理器等,但我一直在经历高负荷,由于MySQL。 随机负载将低于1.0,页面生成时间将<30ms,网站平稳运行。 这是约100个并发用户,服务less于200页/分钟。 但99%的时间非常缓慢,疯狂的高负荷通常至less有4在100年。 我们没有使用这个问题,这个服务器曾经能够处理400个并发用户和1000个页面/分钟而没有负载超过1.5。 我做的第一件事是用ADOdb在PHP中实现数据库caching。 这有一点帮助,但没有解决问题。 我已经看遍了互联网,似乎无法找出什么是错的。 我问一个朋友看看,他没有任何线索。 我让我的主机把我们切换到一台新机器,几个小时后也出现同样的问题。 我们不应该得到这么高的负载,我们正在获得的stream量。 我开始认为它可能与/ tmp有关。 运行'tmpwatch –mtime –all 1 / tmp'后,我能够使负载恢复正常。 然而,负载刺激后,这再次无法工作。 如果有人有什么错误的想法,我将不胜感激。 我不确定你可能会用什么作为衡量指标,但是我包含了一些我认为可能有用的指标。 'top'输出: top – 22:02:36 up 1 day, 23:39, 1 user, load average: 4.01, 4.38, 4.50 Tasks: 233 total, 1 running, 231 sleeping, 0 stopped, 1 zombie Cpu(s): 25.5%us, 2.0%sy, 0.0%ni, 70.5%id, […]
我想分析某些types的请求是否对服务器有重要的影响。 我的后端服务在nginx后面,logging所有请求,包括获得响应所需的时间。 现在的问题是如何从这些约150mg的日志中提取有用的信息。 我正在寻找什么东西可以让我build立一个graphics,并将请求与后端CPU负载相关联。 单个请求的响应时间不相关,因为当后端服务器处于高负载状态时,即使简单的请求需要1秒钟,也会在10-20秒内返回。
当存在大量networkingstream量时,我有一个高服务器负载(平均负载从10到100+)的问题。 读/写文件时也有明显的延迟。 机器是一个Apache Web服务器。 网页正在使用PHP,正在访问/打开一些小(最大30kB)文件(configuration,黑名单,文件从caching目录)。 我试图追溯这个问题的几天现在。 这是我发现的: CPU负载低于10% 负载被长磁盘响应所驱动。 top显示在20-100%的%wa参数(iowait) iostat: pastebin 经过一些testing,似乎问题是一个,PHP脚本中的特定fopen()函数,访问caching文件 如果我用这个特定的fopen()删除行,服务器负载快速下降到0.00-0.50,iowait是0% 有关服务器的一些信息: xeon e3-1245v2,32 gb ram,2x 2TB SATA3硬盘,带有软件RAID 1(镜像),文件系统ext4(启用了dir-index , noatime在fstab中) caching目录大小约为500GB 它有大约16-17万个文件,每个20-30KB 文件名是MD5散列 目录结构是(举例): cacheDir/d4/1d/d41d8cd98f00b204e9800998ecf8427e.dat 所以cacheDir/ (1st级)有256个目录,每个1st级目录有256个二级目录, 所以平均每个二级目录大约有200-300个文件 PHP fopen具有绝对path的caching文件 磁盘被检查:没有错误/警告 e2fsck -Df (优化文件系统中的目录)结果在这里 在e2fsck -Df之后,服务器负载没有差别 我认为,这样的caching目录组织对于最佳的磁盘性能是有利的。 显然我错了.. 你会build议什么来解决这个高负载/慢磁盘响应问题?
自上周以来,我拥有一个运行在VPS上的网站。 从星期一到星期六,一切都很顺利。 该网站每天有大约4.500个独立访问者,平均负载和响应时间都很好。 在星期天,该网站有大约11.000独立访客,因为我们提供独特和独特的内容在当天。 内容存储在一个MySQL数据库中,该数据库运行在不同的VPS服务器上并使用InnoDB引擎。 这是事情出错的地方。 由于访问量的增加,负载平均值会上升到极点,直到网站无法访问。 这是最高的输出: This is an automated message notifying you that the 5 minute load average on your system is 238.37. This has exceeded the 10 threshold. One Minute – 237.31 Five Minutes – 238.37 Fifteen Minutes – 231.1 top – 16:41:12 up 5 days, 18:51, 1 user, load average: […]
我们的静态Web服务器的现状: 2个2U服务器,全部用于存储数据的SSD(raid5) 数据只能通过我们的应用程序写入(*) 大量的小图像文件(一个图像是〜50kB) stream量负载平衡2 DNSlogging+ keepalived /心跳在服务器之间 在峰值时间内〜4Gbps的总stream量(每台服务器〜2Gps) 用户通过nginx访问文件,通过ftp访问内部应用程序 我们使用的只是获取,删除,放 – 我的意思是,没有文件追加和其他posix调用使用,我们只操作整个文件(甚至HTTP范围请求是不允许的) (*)只有我们的内部应用程序通过ftp写入两台服务器。 如果其中一个失败,整个操作失败=>当其中一个服务器closures时上传不起作用。 但是,向Web客户端提供静态内容仍然有效。 我们已经达到了磁盘容量的50%,我们开始寻找更好的解决scheme。 因为我们不需要标准的posix调用,所以我正考虑迁移到对象存储。 我发现OpenStack Swift非常有名,可能会有用。 我害怕的是: 我们将仅在下一个半年运行在两台服务器上 我们有很多networkinghttpstream量,我不确定迅速可以处理 另一个问题是更具体一点。 我们希望为用户提供通过一些上传表单(例如eshop中的图片产品)上传内容的能力。 所以问题是 – 是否有任何直接上传进度条的方式,…? 或者我们必须把它上传到没有处理任何静态内容(=不在git中的内容)的标准Web服务器,然后将其上传到对象存储。 随意张贴您的意见,甚至更好的最佳做法。 还有一件重要的事情 – 我们不想使用任何CDN提供商。 更新#1: 好了朋友们。 还有一些我发现的技术: GlusterFS:不幸的是非常慢,并不稳定。 HDFS:我没有经验。 你什么事?
我们制作了一个显示dynamic图像的应用程序。 我们试图用nginx处理一秒钟的2k图像请求。 图像的大小约为0.13 mb,我们使用这个代码的PHP服务的图像: header("Content-Type: application/octet-stream"); header('Content-Disposition: attachment;filename="'.$file.'"'); echo file_get_contents($file); 当我们用30秒(250秒)的7500请求加载服务器时,我们得到这个响应:响应的屏幕截图 这里的平均响应是5461毫秒。 我们得到了4GB的RAM digitalocean.com上的40GB SSD磁盘2核心vp我们可以做什么的build议?
我正在使用InnoDB表运行MySQL 5.5。 每秒约有200个查询。 还有50万行或更多的表格。 但是,我对服务器负载和IO /尤其是与jdb2等待有很大的问题。 jdb2 / md2-8正在采取99%IO /等待看iotop输出图像: Iotop输出 盒子规格:Xeon 1246 v3,32 GB RAM,2x 240英特尔SSD RAID 1 我不知道我的configuration是否有问题,或者是与RAID有关的问题。 有小费吗 ? 我的MySQL my.cfg: innodb_file_per_table = 1 join_buffer_size = 1M open_files_limit = 10000 myisam_use_mmap = 1 query_cache_type = 1 table_open_cache = 2000 concurrent_insert = 2 max_connections = 3000 query_cache_size = 16M key_buffer_size = 16M read_buffer_size […]