linux平台下server运维问题分析与定位
结合我工作中碰到的运维问题,总结一下linux下server常见的运维问题以及定位方式。这里的server主要指自主开发的逻辑server,web srv因为通常采用通用的架构所以问题比较少。
逻辑server通常的处理能力在3k/s - 1w/s之间,因业务特点而不同。逻辑server一般是自主开发的,虽然在上线前大都经过功能和压力测试,但放到现网环境上部署后还是难免会出现一些问题,有些问题是在灰度发布时就可以发现,而有些问题则是一个漫长的暴露过程。下面先总结一下大致的问题分类和定位方法。
1. 程序BUG如fd泄漏或内存泄漏
业务上线前一定要做压测,同时查看进程消耗的内存与fd数,结合业务特性分析fd使用量是否合理,同时观察内存使用是不是最终会趋于稳定的值,如果一直增加,就肯定有泄漏。
fd泄漏确认方法是:ls /proc/pid/fd -al | wc,可以看到单个进程使用的fd数,观察是否一直在涨长,如果没有最终达到一个稳定值,则可以确认存在泄漏。同时可以cat /proc/net/sockstat观察整体的fd使用数量是否一直在涨长,通常32位的机器,fd超过10W时系统会到达瓶颈。
内存泄漏确认方法是:top 看进程使用的RES 和 SHR,观察是否一直在涨长,如果没有最终达到一个稳定值,则可以确认存在泄漏。同时可以看下mem的使用量是否一直在增加。内存泄漏最终的结果是使用到的swap分区,一旦出现这种情况,cpu的wa字段会出现远大于0的情况,表明cpu阻塞在等待输入输出上。
2. 业务自然增长
这一点依赖于对请求数的统计,通过对前后几天的对比,不难确认是否是业务自然增长,单机请求量上升使系统出现瓶颈,这种问题通过扩容可以轻松解决,但最好的办法是对系统的容量和关键参数如cpu\mem\eth加上监控,能够做到提前告警,这样不至于在出问题的时候紧急扩容。
3. 特性变更导致用户行为异常
举个例子,有一次我在升级server时,基于性能的考虑,少返回了一个已无效的字段,灰度升级一台机器后,发现系统负载升高了3倍,当时的第一反应是有bug,使到cpu的使用突增,但vmstat发现 升级前cpu使用率 usr 和 sys大致是 14 7,升级后为 42 21,大致同比增长了3倍,再看一下请求数,发现请求数也同比增长,可见,是某些原因达致用户在重试。
&n
相关文档:
由bootload进入linux后由head.s进入了start_kernel了.
asmlinkage void __init start_kernel(void)
{
char * command_line;
extern struct kernel_param __start___param[], __stop___param[];
&hel ......
Linux下配置静态IP地址,设置DNS和主机名
配置文件位于:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
使IP地址生效:
/sbin/ifdown eth0
/sbin/ifup eth0
配置dns解析
echo "nameserver 211.98.1.28" ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
一般说来,
Linux
社区版总有点儿凑合的意思,人们不敢使用,但是,也有例外的情况。比如,冠名为
Mint
的
Linux
发行版。具体情况是怎样的呢?
......
安装MySQL
好,我们可以开始正式的安装了。假设你把所有必须的源码或者包都放在了/tmp下。如果你下载的是RPM包的话,那比较简单;如果你下载的是二进制包(你没有rpm程序或者你想自定义的话),那么会稍微麻烦一点。
RPM包安装
你必须成为root用户才能使用rpm安装程序,以下是安装过程:
$ cd /tmp
$ su
# rpm -Uvh ......
http://hi.baidu.com/chance_gao/blog/item/a8bfe3cd57c7be590fb345ff.html
Redhat4forxmanager [GDM]
第一步,我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句:
# * #any host can get a login window去掉最前面的#号,成为
* #any host can get a login window
第二步,我们修改/etc/X11/gdm/gdm ......