linux负载对网站linux 源代码下载网站有影响吗

您所在的位置: &
Linux服务器中高负载现象故障排查指南(2)
Linux服务器中高负载现象故障排查指南(2)
核子可乐译
技术支持分析师们常常接到用户对服务器高负载的控诉。服务器拥有者、系统管理员或者服务器供应商应当如何对高负载现象进行故障排查,在本文中我们就来探讨一下。
脚本使用前的注意事项
重要事项:大家需要根据自己的理解来调整脚本中的数值。完美的默认值设定并不存在,因为不同的服务器环境在实际运行中所应遵循的标准也不一样。举例来说,拥有十六个CPU核心的服务器在一分钟平均负载方面肯定要高于只拥有一个CPU核心的服务器。
注意:大家需要将自己的电子邮箱地址添加到EMAIL变量当中,如下所示:
EMAIL=you@&
以下五项也需要根据实际情况加以调整:
MAX_SWAP_USED
MAX_MEM_USED
MAX_PPS_OUT
MAX_PPS_IN
#!/bin/sh&export&PATH=/bin:/usr/bin&##########################################################################&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&Copyright&Jeff&Petersen,&2009&-&2013&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&This&program&is&free&software:&you&can&redistribute&it&and/or&modify&&#&#&&it&under&the&terms&of&the&GNU&General&Public&License&as&published&by&&#&#&&the&Free&Software&Foundation,&either&version&3&of&the&License,&or&&&&&#&#&&(at&your&option)&any&later&version.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&This&program&is&distributed&in&the&hope&that&it&will&be&useful,&&&&&&&#&#&&but&WITHOUT&ANY&WARRANTY;&without&even&the&implied&warranty&of&&&&&&&&#&#&&MERCHANTABILITY&or&FITNESS&FOR&A&PARTICULAR&PURPOSE.&&See&the&&&&&&&&&#&#&&GNU&General&Public&License&for&more&details.&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&You&should&have&received&a&copy&of&the&GNU&General&Public&License&&&&&#&#&&along&with&this&program.&&If&not,&see&//www.gnu.org/licenses.&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&##########################################################################&###############################################################################&#&START&USER&CONFIGURABLE&VARIABLES&###############################################################################&EMAIL=&&&#&1&minute&load&avg&MAX_LOAD=3&#&kB&MAX_SWAP_USED=1000&#&kB&MAX_MEM_USED=500000&#&packets&per&second&inbound&MAX_PPS_IN=2000&#&packets&per&second&outbound&MAX_PPS_OUT=2000&#&max&processes&in&the&process&list&MAX_PROCS=400&###############################################################################&#&END&USER&CONFIGURABLE&VARIABLES&###############################################################################&IFACE=`grep&ETHDEV&/etc/wwwacct.conf&|&awk&'{print&$2}'`&if&[[&&$IFACE&&=~&&venet&&]]&;&then&IFACE=venet0&fi&IFACE=${IFACE}:&###############################################################################&#&1&min&load&avg&###############################################################################&ONE_MIN_LOADAVG=`cut&-d&.&-f&1&/proc/loadavg`&echo&&1&minute&load&avg:&$ONE_MIN_LOADAVG&&###############################################################################&#&swap&used&###############################################################################&SWAP_TOTAL=`grep&^SwapTotal:&/proc/meminfo&|&awk&'{print&$2}'`&SWAP_FREE=`grep&^SwapFree:&/proc/meminfo&|&awk&'{print&$2}'`&let&&SWAP_USED&=&(SWAP_TOTAL&-&SWAP_FREE)&&echo&&Swap&used:&$SWAP_USED&kB&&###############################################################################&#&mem&used&###############################################################################&MEM_TOTAL=`grep&^MemTotal:&/proc/meminfo&|&awk&'{print&$2}'`&MEM_FREE=`grep&^MemFree:&/proc/meminfo&|&awk&'{print&$2}'`&let&&MEM_USED&=&(MEM_TOTAL&-&MEM_FREE)&&echo&&Mem&used:&$MEM_USED&kB&&###############################################################################&#&packets&received&###############################################################################&PACKETS_RX_1=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$2}'`&sleep&2;&PACKETS_RX_2=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$2}'`&let&&PACKETS_RX&=&(PACKETS_RX_2&-&PACKETS_RX_1)&/&2&&echo&&packets&received&(2&secs):&$PACKETS_RX&&###############################################################################&#&packets&sent&###############################################################################&PACKETS_TX_1=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$10}'`&sleep&2;&PACKETS_TX_2=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$10}'`&let&&PACKETS_TX&=&(PACKETS_TX_2&-&PACKETS_TX_1)&/&2&&echo&&packets&sent&(2&secs):&$PACKETS_TX&&let&&SWAP_USED&=&SWAP_TOTAL&-&SWAP_FREE&&if&[&!&&$SWAP_USED&&==&0&]&;&then&PERCENTAGE_SWAP_USED=`echo&$SWAP_USED&/&$SWAP_TOTAL&|&bc&-l`&TOTAL_PERCENTAGE=`echo&${PERCENTAGE_SWAP_USED:1:2}%`&else&TOTAL_PERCENTAGE='0%'&fi&###############################################################################&#&number&of&processes&###############################################################################&MAX_PROCS_CHECK=`ps&ax&|&wc&-l`&send_alert()&{&SUBJECTLINE=&`hostname`&[L:&$ONE_MIN_LOADAVG]&[P:&$MAX_PROCS_CHECK]&[Swap&Use:&$TOTAL_PERCENTAGE&]&[pps&in:&$PACKETS_RX&&pps&out:&$PACKETS_TX]&&ps&auxwwwf&|&mail&-s&&$SUBJECTLINE&&$EMAIL&exit&}&if&&&[&$ONE_MIN_LOADAVG&-gt&$MAX_LOAD&&&&&&]&;&then&send_alert&elif&[&$SWAP_USED&&&&&&&-gt&$MAX_SWAP_USED&]&;&then&send_alert&elif&[&$MEM_USED&&&&&&&&-gt&$MAX_MEM_USED&&]&;&then&send_alert&elif&[&$PACKETS_RX&&&&&&-gt&$MAX_PPS_IN&&&&]&;&then&send_alert&elif&[&$PACKETS_TX&&&&&&-gt&$MAX_PPS_OUT&&&]&;&then&send_alert&elif&[&$MAX_PROCS_CHECK&-gt&$MAX_PROCS&]&;&then&send_alert&fi&
需要注意的是,进程列表的输出内容中包含一些有用的数列,涉及各个进程的CPU与内存使用情况:
TIME (显示一个进程的存在时间)
我们可以通过多种方式剖析服务器负载高企的原因。下面我们列出几项常用方案--仅供参考,并不全面:
利用mysqladmin processlist (或者简写为'mysqladmin pr')检查MySQL进程列表
利用mytop检查MySQL进程列表
查阅日志文件。了解服务器自身的反馈意见也很重要。您的服务器是否遭遇暴力破解?
运行dmesg以检查可能存在的硬件故障
利用netstat查看服务器连接
下面则是值得关注的日志文件及其保存路径:
系统日志: /var/log/messages, /var/log/secure
SMTP日志: /var/log/exim_mainlog, /var/log/exim_rejectlog, /var/log/exim_paniclog
POP3/IMAP日志: /var/log/maillog
Apache日志: /usr/local/apache/logs/access_log, /usr/local/apache/logs/error_log, /usr/local/apache/logs/suexec_log, /usr/local/apache/logs/suphp_log
网站日志: /usr/local/apache/domlogs/ (use this to find sites with traffic in the last 60 seconds: find -maxdepth 1 -type f -mmin -1 | egrep -v 'offset|_log$')
Cron日志: /var/log/cron
大家也可以在评论栏中反馈您在工作中遇到的问题、对本篇文章的评论及其它任何希望与朋友们分享的信息。作为一篇独立的指导性文章,我们不可避免会存在遗漏或者疏忽,期待您提出宝贵意见、也希望大家能从中受到一点启发。
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
内容导航&第 1 页: &第 2 页:
关于&&的更多文章
弄清楚一台PC机空间如何运作绝非易事,即使对专家来说也有难度--
Linux界极具活力,面向不同的用户可以使用不同的Linux发行版,比如适合新手和游戏爱好者等。
日前,微软宣布 Windows 8.1 企业预览版开放下载,很
《Linux运维趋势》是针对 Linux/Unix 系统运维人员的
《Linux运维趋势》2013年7月刊来得有点晚,不过终于还
《网管员世界》是国内唯一一家专门面向网管员职业的刊物。本书是2006年《网管员世界》各期内容的汇集,内容权威、全面、时效性强
51CTO旗下网站TCPtransfer linux下的TCP 中转服务器程序, 一个负载均衡器和若 真实 Network 网络 238万源代码下载-
&文件名称: TCPtransfer
& & & & &&]
&&所属分类:
&&开发工具: Unix_Linux
&&文件大小: 57 KB
&&上传时间:
&&下载次数: 32
&&提 供 者:
&详细说明:linux下的TCP 中转服务器程序,分为一个负载均衡器和若干个真实服务器-transit under linux TCP server program, divided into a load balancer and a number of real servers
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&TCP_Transfer&&............\.svn&&............\....\all-wcprops&&............\....\entries&&............\....\prop-base&&............\....\props&&............\....\text-base&&............\....\tmp&&............\....\...\prop-base&&............\....\...\props&&............\....\...\text-base&&............\client-test&&............\...........\.svn&&............\...........\....\all-wcprops&&............\...........\....\dir-prop-base&&............\...........\....\entries&&............\...........\....\prop-base&&............\...........\....\props&&............\...........\....\text-base&&............\...........\....\.........\main.cpp.svn-base&&............\...........\....\.........\main.h.svn-base&&............\...........\....\.........\utils.cpp.svn-base&&............\...........\....\tmp&&............\...........\....\...\prop-base&&............\...........\....\...\props&&............\...........\....\...\text-base&&............\...........\main.cpp&&............\...........\main.h&&............\...........\utils.cpp&&............\LoadBanlancer&&............\.............\.svn&&............\.............\....\all-wcprops&&............\.............\....\dir-prop-base&&............\.............\....\entries&&............\.............\....\prop-base&&............\.............\....\props&&............\.............\....\text-base&&............\.............\....\.........\default.conf.svn-base&&............\.............\....\.........\LoadBanlancer.cbp.svn-base&&............\.............\....\.........\LoadBanlancer.cpp.svn-base&&............\.............\....\.........\LoadBanlancer.depend.svn-base&&............\.............\....\.........\LoadBanlancer.h.svn-base&&............\.............\....\.........\LoadBanlancer.layout.svn-base&&............\.............\....\.........\main.cpp.svn-base&&............\.............\....\.........\main.h.svn-base&&............\.............\....\.........\Makefile.svn-base&&............\.............\....\.........\Node.cpp.svn-base&&............\.............\....\.........\Node.h.svn-base&&............\.............\....\.........\utils.cpp.svn-base&&............\.............\....\tmp&&............\.............\....\...\prop-base&&............\.............\....\...\props&&............\.............\....\...\text-base&&............\.............\default.conf&&............\.............\LoadBanlancer.cbp&&............\.............\LoadBanlancer.cpp&&............\.............\LoadBanlancer.depend&&............\.............\LoadBanlancer.h&&............\.............\LoadBanlancer.layout&&............\.............\main.cpp&&............\.............\main.h&&............\.............\Makefile&&............\.............\Node.cpp&&............\.............\Node.h&&............\.............\utils.cpp&&............\RealServer&&............\..........\.svn&&............\..........\....\all-wcprops&&............\..........\....\dir-prop-base&&............\..........\....\entries&&............\..........\....\prop-base&&............\..........\....\props&&............\..........\....\text-base&&............\..........\....\.........\default.conf.svn-base&&............\..........\....\.........\main.cpp.svn-base&&............\..........\....\.........\main.h.svn-base&&............\..........\....\.........\Makefile.svn-base&&............\..........\....\.........\RealServer.cbp.svn-base&&............\..........\....\.........\RealServer.cpp.svn-base&&............\..........\....\.........\RealServer.depend.svn-base&&............\..........\....\.........\RealServer.h.svn-base&&............\..........\....\.........\RealServer.layout.svn-base&&............\..........\....\.........\utils.cpp.svn-base&&............\..........\....\tmp&&............\..........\....\...\prop-base&&............\..........\....\...\props&&............\..........\....\...\text-base&&............\..........\default.conf&&............\..........\main.cpp&&............\..........\main.h&&............\..........\Makefile&&............\..........\RealServer.cbp&&............\..........\RealServer.cpp&&............\..........\RealServer.depend&&............\..........\RealServer.h&&............\..........\RealServer.layout&&............\..........\utils.cpp
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 利用P2P点对点技术实现UDP内网穿透
只要是数据量很大,而一般利用中转服务器又需要一定规模投入的应用,我们都可以考虑用P2P技术。
1.降低成本与投入。
2.提高传输性能。
&[] - 两个视频中转服务器源码,开发它只是用来做比较的。视频服务器是一种数据量大,而连接数少的服务器,所以使用或不使用iocp没有什么明显差别,这里用到了jrtplib库
&[] - 服务器负载均衡论文,多篇论文,感觉很有用。
&[] - 大型网站负载均衡技术DNS轮循,F5 BIG-IP,LVS,L7SW,HAProxy,Nginx,
&[] - 本文的负载均衡是基于中间件技术的,采用三层体系结构,位于中间件层的
负载均衡器负责将客户的请求根据数据库负载情况和负载均衡策略转发给最适合
处理的数据库中去。
&[] - lvs负载均衡,双机负载均衡,可实现linux下7x24不间断运行
&[] - linux系统多机器之间完成负载均衡的程序,提供参考.
&[] - 使用C++/QT实现了一个负载均衡,有三个程序,Client, Server, Loder,运行过程中可以开多个客户端和多个服务器,一个负载均衡,使用多个客户端发送多条数据的时候,负载均衡器使用轮转法将消息推送给空闲服务器,服务应答消息传给负载均衡器,由负载均衡器发送给客户端
&[] - 此文件是基于Linux-C的tcp服务器与客户端,支持多个用户同时连接。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
一、查看系统负荷
如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。
在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。(另外,它们在苹果公司的Mac电脑上也适用。)
你在终端窗口键入uptime,系统会返回一行信息。
这行信息的后半部分,显示&load average&,它的意思是&系统的平均负荷&,里面有三个数字,我们可以从中判断系统负荷是大还是小。
为什么会有三个数字呢?你从手册中查到,它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。
如果你继续看手册,它还会告诉你,当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。
那么很显然,&load average&的值越低,比如等于0.2或0.3,就说明电脑的工作量越小,系统负荷比较轻。
但是,什么时候能看出系统负荷比较重呢?等于1的时候,还是等于0.5或等于1.5的时候?如果1分钟、5分钟、15分钟三个值不一样,怎么办?
二、一个类比
判断系统负荷是否过重,必须理解load average的真正含义。下面,我根据&&这篇文章,尝试用最通俗的语言,解释这个问题。
首先,假设最简单的情况,你的电脑只有一个CPU,所有的运算都必须由这个CPU来完成。
那么,我们不妨把这个CPU想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。)
系统负荷为0,意味着大桥上一辆车也没有。
系统负荷为0.5,意味着大桥一半的路段有车。
系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经&满&了。但是必须注意的是,直到此时大桥还是能顺畅通行的。
系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。
CPU的系统负荷,基本上等同于上面的类比。大桥的通行能力,就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。
如果CPU每分钟最多处理100个进程,那么系统负荷0.2,意味着CPU在这1分钟里只处理20个进程;系统负荷1.0,意味着CPU在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正排队等着CPU处理。
为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。
三、系统负荷的经验法则
1.0是系统负荷的理想值吗?
不一定,系统管理员往往会留一点余地,当这个值达到0.7,就应当引起注意了。经验法则是这样的:
当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。
当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。
当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。
四、多处理器
上面,我们假设你的电脑只有1个CPU。如果你的电脑装了2个CPU,会发生什么情况呢?
2个CPU,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。
还是用大桥来类比,两个CPU就意味着大桥有两根车道了,通车能力翻倍了。
所以,2个CPU表明系统负荷可以达到2.0,此时每个CPU都达到100%的工作量。推广开来,n个CPU的电脑,可接受的系统负荷最大为n.0。
五、多核处理器
芯片厂商往往在一个CPU内部,包含多个CPU核心,这被称为多核CPU。
在系统负荷方面,多核CPU与多CPU效果类似,所以考虑系统负荷的时候,必须考虑这台电脑有几个CPU、每个CPU有几个核心。然后,把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0,就表明电脑正常运行。
怎么知道电脑有多少个CPU核心呢?
&cat /proc/cpuinfo&命令,可以查看CPU信息。&grep -c 'model name' /proc/cpuinfo&命令,直接返回CPU的总核心数。
六、最佳观察时长
最后一个问题,&load average&一共返回三个平均值----1分钟系统负荷、5分钟系统负荷,15分钟系统负荷,----应该参考哪个值?
如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大。
如果15分钟内,平均系统负荷大于1.0(调整CPU核心数之后),表明问题持续存在,不是暂时现象。所以,你应该主要观察&15分钟系统负荷&,将它作为电脑正常运行的指标。
==========================================
[参考文献]
& 相关主题:
本文来源:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 linux 源代码下载网站 的文章

 

随机推荐