201604-29 linux查看与挂载新磁盘 NEW 问题发现腾讯云控制台一个服务器挂载了一个数据库,但是用df -h查看磁盘占用情况,发现磁盘/dev/vdb1消失了。是磁盘坏了?还是没被系统识别?df -h Filesystem Size Used Avail Use% Mounted on devtmpfs &... Read More >
201604-28 redis在PHP中的基本使用案例 NEW 利用phpredis实现php操作redis,需要进行redis.so的下载,添加//利用Redis类进行操作//实例化Redis类$redis = new Redis();//选择指定的redis数据库连接,默认端口号为6379$redis->connect('127.0.0.1', 6379);//普通set/get操作$redis->set(‘library’, ‘predis’);$retv... Read More >
201604-28 linux中df -i 100%解决方案 NEW 背景E138: Can't write viminfo file /root/.viminfo!Press ENTER or type command to continue这不科学呀,明明是root,怎么可能无法写入?后来查看磁盘inodes状态,发现/已经是100%,难怪无法写入。df -iFilesystem Inodes IUsed &n... Read More >
201604-27 linux中利用nethogs查看哪些进程占用网络带宽 centos6版本安装1、安装依赖包yum install ncurses* -y yum install libpcap* -y2、下载源码包wget tar -zxvf v0.8.1.tar.gz cd nethogs-0.8.1/ make && make install示例nethogs em... Read More >
201604-26 linux中set指令用法 简介我们知道,Bash 执行脚本的时候,会创建一个新的 Shell,这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数。set命令用来修改 Shell 环境的运行参数,也就是可以定制环境。语 法[root@localhost ~]# help setset: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [a... Read More >
201604-25 linux中流量监控工具iftop详解 要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。一、iftop是什么?iftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、iftop有什么用?iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。三、安装iftop安装方法1、编译安装如果采用编译安装可以到iftop官网下载最新的源码包。下载iftopwget&nbs... Read More >
201604-24 linux下utf-8 BOM的检查和删除 背景当源程序是gbk格式,你转换为 utf8 的时候,很多情况是头部会出现bom,当是php 程序时候,这样会出现很多意想不到的事情,那怎么办呢,你可以用linux 命令来查找,然后对文件的bom 进行删除grep -r $’\xEF\xBB\xBF’ * |grep .phpbom:UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark)解决方案1. 用vim去除utf-8 BOM去掉u... Read More >
201604-23 linux中配置sudo赋予普通用户对某些命令的执行权限 背景有时我们需要给普通用户,某个命令的执行权限,但是又不想让这个普通用户能执行更多的其他命令,这时候我们可以配置sudo,设置只能执行某几个命令即可配置vim /etc/sudoers #新增如下一行,赋予www用户能sudo执行supervisorctl命令 www ALL=(ALL:ALL) NOPASSWD:/bin/supervisorctl,/sbin/serv... Read More >
201604-22 linux中多文件按行拼接整合命令paste 概念Linux下的paste命令主要用于从多个文件(包括标准输入)中读取内容,将每个文件的对应行用指定分隔符(默认tab制表符)拼接起来并打印到标准输出,我们可以使用重定向命令“>”将输出结果保存到文件中,从而实现整合多个文件的功能。 常用参数-d<分隔符> 指定分隔符,若未使用该参数则默认制表符分隔-s 不使用平行的行目输出模式,而是每个文件占用一行 示例$ cat username 张三&... Read More >
201604-21 linux中sed用法读这一篇就够了 1.概念sed是一种行编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。2.语法sed [options] 'command' file(s)sed [o... Read More >
201604-20 linux中配置内核参数sysctl详解 概念sysctl用于运行时配置内核参数,这些参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。命令格式sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p <filename> ... Read More >
201604-19 linux中tcpdump的详细用法 在调试网络通信程序是tcpdump是必备工具。tcpdump很强大,可以看到网络通信的每个细节。如TCP,可以看到3次握手,PUSH/ACK数据推送,close4次挥手,全部细节。包括每一次网络收包的字节数,时间等。tcpdump的选项-a —— 将网络地址和广播地址转变成名字-d —— 将匹配信息包的代码以人们能够理解的汇编格式给出-dd —— 将匹配信息包的代码以c语言程序段的格式给出-ddd —— 将匹配信息包的代码以十进制的形式给出-e... Read More >
201604-18 linux中如何查看系统io使用情况 linux中查看IO的方法主要有下面几种方法:1. top %wa 的含义是等待输入输出的CPU时间百分比,这个数字越高说明越多的CPU资源在等待I/O权限top - 18:38:17 up 13:37, 2 users, load average: 0.18, 0.35, 0.27... Read More >
201604-17 linux中cpu占用过高排查方法 CPU使用率查看top通过top -d 0.1可以缩短采样时间。-d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。查看多核CPUtop 输入1就可以看到各个核心的CPU使用率 mpstat -P ALL... Read More >
201604-16 linux中nf_conntrack table full dropping packet问题处理 概述:在日常的服务器运维过程中,发现某段时间 /var/log/messages日志报错nf_conntrack:table full,drop packet简介:nf_conntrack是内核模块中的连接追踪模块。与iptables有关。用于跟踪一个连接状态。连接跟踪状态可以供其他模块使用,例如state等,可通过以下查看[root@VM_0_11_centos vhost]# &nbs... Read More >
201604-15 linux中高并发场景下too many open files问题处理 概述:高并发场景下 too many open files 问题。可以通过设置系统打开文件数,直接影响单个进程容纳的客户端连接数。比如会影响到长链接应用如聊天中单个进程能够维持的用户连接数, 运行ulimit -n能 看到这个参数值,如果是1024,就是代表单个进程只能同时最多只能维持1024甚至更少(因为有其它文件的句柄被打开)。如果开启4个进程维持用户链 接,那么整个应用能够同时维持的连接数不会超过4*1024个,也就是说最多只能支持4x1024个用户在线可以增大这个设置... Read More >
201604-14 linux中Cannot assign requested address的问题处理 问题描述:最近系统报警有类型如下错误:Cannot assign requested address 主要是连接mysql时产生的错误。分析原因:客户端与服务端每建立一个连接,客户端一侧都会占用一个本地端口(假设没有启用SO_REUSEADDR选项),本地端口数量是有限制的(默认是net.ipv4.ip_local_port_range=32768 61000),也就是说在没设置socket的SO_REUSEADDR选项时,一台Linux服务器作为客户端(注意是作... Read More >
201604-13 linux中查看系统活动情况报告sar命令详解 有很多工具可以看网络流量,但我最喜欢sar。sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、 系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。sar命令常用格式sar [options] [-A] [-o file] t [... Read More >
201604-12 linux中连接数过多(TIME_WAIT/CLOSE_WAIT)读这一篇就够了 根据TCP/IP介绍,socket大概包含10个连接状态。我们平常工作中遇到的,除了针对SYN的拒绝服务攻击,如果有异常,大概率是TIME_WAIT和CLOSE_WAIT的问题。TIME_WAIT一般通过优化内核参数能够解决;CLOSE_WAIT一般是由于程序编写不合理造成的,更应该引起开发者注意。TIME_WAITTIME_WAIT是主动关闭连接的一方保持的状态,像nginx、爬虫服务器,经常发生大量处于time_wait状态的连接。TCP一般在主动关闭连接后,会等待2MS... Read More >
201604-11 linux中netstat和ss命令详解 由于nio的普及,ck10k的问题已经成为过去式。现在随便一台服务器,都可以支持数十万级别的连接了。那么10万的连接需要多少资源呢?由于一个连接都是文件句柄,所以需要文件描述符数量支持才行,每一个socket内存占用15k-20k之间,这样,仅维护相应socket,就需要20kx10万=2G内存;而广播一个1KB的消息需要占用的带宽为100M如何查看当前系统有多少连接呢查看当前系统的连接[root@VM_0_15_centos ~]# netstat&nb... Read More >