• 关于

    linux查看tcp队列大小

    的搜索结果

问题

什么是Linux 实例常用内核网络参数介绍与常见问题处理

本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数。了解参数的具体作用,且注意同类型...
boxti 2019-12-01 22:01:36 2069 浏览量 回答数 0

回答

本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,若您的业务没有受到影响不建议调整内核参数。 了解每一个参数的具体作用,并且同类型或版本操作系统下内核参数可能有所不同。 备份 ECS 实例中的重要数据。参阅文档 创建快照。 Linux 常用内核网络参数 参数 描述 net.core.rmem_default 默认的 TCP 数据接收窗口大小(字节)。 net.core.rmem_max 最大的 TCP 数据接收窗口(字节)。 net.core.wmem_default 默认的 TCP 数据发送窗口大小(字节)。 net.core.wmem_max 最大的 TCP 数据发送窗口(字节)。 net.core.netdev_max_backlog 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 net.core.somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。 net.core.optmem_max 表示每个套接字所允许的最大缓冲区的大小。 net.ipv4.tcp_mem 确定 TCP 栈应该如何反映内存使用,每个值的单位都是内存页(通常是 4KB)第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(注意:其单位是内存页而不是字节)。 net.ipv4.tcp_rmem 为自动调优定义 socket 使用的内存。第一个值是为 socket 接收缓冲区分配的最少字节数;第二个值是默认值(该值会被 rmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收缓冲区空间的最大字节数(该值会被 rmem_max 覆盖)。 net.ipv4.tcp_wmem 为自动调优定义 socket 使用的内存。第一个值是为 socket 发送缓冲区分配的最少字节数;第二个值是默认值(该值会被 wmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是发送缓冲区空间的最大字节数(该值会被 wmem_max 覆盖)。 net.ipv4.tcp_keepalive_time TCP 发送 keepalive 探测消息的间隔时间(秒),用于确认 TCP 连接是否有效。 net.ipv4.tcp_keepalive_intvl 探测消息未获得响应时,重发该消息的间隔时间(秒)。 net.ipv4.tcp_keepalive_probes 在认定 TCP 连接失效之前,最多发送多少个 keepalive 探测消息。 net.ipv4.tcp_sack 启用有选择的应答(1 表示启用),通过有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段,(对于广域网通信来说)这个选项应该启用,但是会增加对 CPU 的占用。 net.ipv4.tcp_fack 启用转发应答,可以进行有选择应答(SACK)从而减少拥塞情况的发生,这个选项也应该启用。 net.ipv4.tcp_timestamps TCP 时间戳(会在 TCP 包头增加 12 B),以一种比重发超时更精确的方法(参考 RFC 1323)来启用对 RTT 的计算,为实现更好的性能应该启用这个选项。 net.ipv4.tcp_window_scaling 启用 RFC 1323 定义的 window scaling,要支持超过 64KB 的 TCP 窗口,必须启用该值(1 表示启用),TCP 窗口最大至 1GB,TCP 连接双方都启用时才生效。 net.ipv4.tcp_syncookies 表示是否打开 TCP 同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES 项进行编译,同步标签可以防止一个套接字在有过多试图连接到达时引起过载。默认值 0 表示关闭。 net.ipv4.tcp_tw_reuse 表示是否允许将处于 TIME-WAIT 状态的 socket (TIME-WAIT 的端口)用于新的 TCP 连接。 net.ipv4.tcp_tw_recycle 能够更快地回收 TIME-WAIT 套接字。 net.ipv4.tcp_fin_timeout 对于本端断开的 socket 连接,TCP 保持在 FIN-WAIT-2 状态的时间(秒)。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。 net.ipv4.ip_local_port_range 表示 TCP/UDP 协议允许使用的本地端口号。 net.ipv4.tcp_max_syn_backlog 对于还未获得对方确认的连接请求,可保存在队列中的最大数目。如果服务器经常出现过载,可以尝试增加这个数字。默认为 1024。 net.ipv4.tcp_low_latency 允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况,这个选项应该禁用。 net.ipv4.tcp_westwood 启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化,对于 WAN 通信来说应该启用这个选项。 net.ipv4.tcp_bic 为快速长距离网络启用 Binary Increase Congestion,这样可以更好地利用以 GB 速度进行操作的链接,对于 WAN 通信应该启用这个选项。 net.ipv4.tcp_max_tw_buckets 该参数设置系统的 TIME_WAIT 的数量,如果超过默认值则会被立即清除。默认为 180000。 net.ipv4.tcp_synack_retries 指明了处于 SYN_RECV 状态时重传 SYN+ACK 包的次数。 net.ipv4.tcp_abort_on_overflow 设置改参数为 1 时,当系统在短时间内收到了大量的请求,而相关的应用程序未能处理时,就会发送 Reset 包直接终止这些链接。建议通过优化应用程序的效率来提高处理能力,而不是简单地 Reset。默认值: 0 net.ipv4.route.max_size 内核所允许的最大路由数目。 net.ipv4.ip_forward 接口间转发报文。 net.ipv4.ip_default_ttl 报文可以经过的最大跳数。 net.netfilter.nf_conntrack_tcp_timeout_established 让 iptables 对于已建立的连接,在设置时间内若没有活动,那么则清除掉。 net.netfilter.nf_conntrack_max 哈希表项最大值。 查看和修改 Linux 实例内核参数 方法一、通过 /proc/sys/ 目录 /proc/sys/ 目录是 Linux 内核在启动后生成的伪目录,其目录下的 net 文件夹中存放了当前系统中生效的所有内核参数、目录树结构与参数的完整名称相关,如 net.ipv4.tcp_tw_recycle,它对应的文件是 /proc/sys/net/ipv4/tcp_tw_recycle,文件的内容就是参数值。 查看内核参数:使用 cat 查看对应文件的内容,例如执行命令 cat /proc/sys/net/ipv4/tcp_tw_recycle 查看 net.ipv4.tcp_tw_recycle 的值。 修改内核参数:使用 echo 修改内核参数对应的文件,例如执行命令 echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle 将 net.ipv4.tcp_tw_recycle 的值修改为 0。 注意:方法一修改的参数值仅在当次运行中生效,系统重启后会回滚历史值,一般用于临时性的验证修改的效果。若需要永久性的修改,请参阅方法二。 方法二、通过 sysctl.conf 文件 查看内核参数:执行命令 sysctl -a 查看当前系统中生效的所有参数,如下所示: net.ipv4.tcp_app_win = 31 net.ipv4.tcp_adv_win_scale = 2 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_frto = 2 net.ipv4.tcp_frto_response = 0 net.ipv4.tcp_low_latency = 0 net.ipv4.tcp_no_metrics_save = 0 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_tso_win_divisor = 3 net.ipv4.tcp_congestion_control = cubic net.ipv4.tcp_abc = 0 net.ipv4.tcp_mtu_probing = 0 net.ipv4.tcp_base_mss = 512 net.ipv4.tcp_workaround_signed_windows = 0 net.ipv4.tcp_challenge_ack_limit = 1000 net.ipv4.tcp_limit_output_bytes = 262144 net.ipv4.tcp_dma_copybreak = 4096 net.ipv4.tcp_slow_start_after_idle = 1 net.ipv4.cipso_cache_enable = 1 net.ipv4.cipso_cache_bucket_size = 10 net.ipv4.cipso_rbm_optfmt = 0 net.ipv4.cipso_rbm_strictvalid = 1 修改内核参数: 执行命令   /sbin/sysctl -w kernel.domainname="example.com"  来修改指定的参数值,如 sysctl -w net.ipv4.tcp_tw_recycle="0" 执行命令   vi /etc/sysctl.conf  修改   /etc/sysctl.conf  文件中的参数。 执行命令   /sbin/sysctl -p  使配置生效。 Linux 网络相关内核参数引发的常见问题及处理 问题现象 原因分析 解决方案 无法在本地网络环境通过 SSH 连接 ECS Linux 实例,或者访问该 Linux 实例上的 HTTP 业务出现异常。Telnet 测试会被 reset。 如果您的本地网络是 NAT 共享方式上网,该问题可能是由于本地 NAT 环境和目标 Linux 相关内核参数配置不匹配导致。尝试通过修改目标 Linux 实例内核参数来解决问题:1. 远程连接目标 Linux 实例;2. 查看当前配置: cat /proc/sys/net/ipv4/tcp_tw_recyclecat /proc/sys/net/ipv4/tcp_timestamps 查看上述两个配置的值是不是 0,如果为 1的话,NAT 环境下的请求可能会导致上述问题。 通过如下方式将上述参数值修改为 0:1. 执行命令 vi /etc/sysctl.conf。2. 添加如下内容:net.ipv4.tcp_tw_recycle=0net.ipv4.tcp_timestamps=0。3. 输入指令 # sysctl -p 使配置生效。4. 重新 SSH 登录实例或者业务访问测试。 服务端 A 与 客户端 B 建立了 TCP 连接,之后服务端 A 主动断开了连接,但是在客户端 B 上仍然看到连接是建立的。示例见图一,图二。 通常是由于修改了服务端内核参数 net.ipv4.tcp_fin_timeout 默认设置所致。 1. 执行命令 vi /etc/sysctl.conf,修改配置:net.ipv4.tcp_fin_timeout=30。2. 执行命令 # sysctl -p 使配置生效。 通过 netstat 或 ss 可以看到大量处于 TIME_WAIT 状态的连接。 通过 netstat -n | awk ‘/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}’ 查看 TIME_WAIT 数量。 1. 执行命令 vi /etc/sysctl.conf,修改或加入以下内容: net . ipv4 . tcp_syncookies = 1 net . ipv4 . tcp_tw_reuse = 1 net . ipv4 . tcp_tw_recycle = 1 net . ipv4 . tcp_fin_timeout = 30 2. 执行命令 /sbin/sysctl -p  使配置生效。 云服务器上出现大量 CLOSE_WAIT 状态的连接数。 根据实例上的业务量来判断 CLOSE_WAIT 数量是否超出了正常的范围。TCP 连接断开时需要进行四次挥手,TCP 连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有进行后续的关闭连接操作,那么该链接就会处于 CLOSE_WAIT 状态。虽然该链接已经处于半开状态,但是已经无法和对端通信,需要及时的释放该链接。建议从业务层面及时判断某个连接是否已经被对端关闭,即在程序逻辑中对连接及时进行关闭检查。 通过命令 netstat -an|grep CLOSE_WAIT|wc -l 查看当前实例上处于 CLOSE_WAIT 状态的连接数。Java 语言:1. 通过 read 方法来判断 I/O 。当 read 方法返回 -1 时则表示已经到达末尾。2. 通过 close 方法关闭该链接。C 语言:1. 检查 read 的返回值,若是 0 则可以关闭该连接,若小于 0 则查看一下 errno,若不是 AGAIN 则同样可以关闭连接。 ECS Linux FIN_WAIT2 状态的 TCP 链接过多。 HTTP 服务中,SERVER 由于某种原因关闭连接,如 KEEPALIVE 的超时。这样,作为主动关闭的 SERVER 一方就会进入 FIN_WAIT2 状态。但 TCP/IP 协议栈中,FIN_WAIT2 状态是没有超时的(不像 TIME_WAIT 状态),如果 Client 不关闭,FIN_WAIT_2 状态将保持到系统重启,越来越多的 FIN_WAIT_2 状态会致使内核 Crash。 1. 执行命令 vi /etc/sysctl.conf,修改或加入以下内容: net . ipv4 . tcp_syncookies = 1 net . ipv4 . tcp_fin_timeout = 30 net . ipv4 . tcp_max_syn_backlog = 8192 net . ipv4 . tcp_max_tw_buckets = 5000 2. 执行命令 # sysctl -p 使配置生效。 查询服务器 /var/log/message 日志,发现全部是类似如下 kernel: TCP: time wait bucket table overflowt 的报错信息,报错提示 TCP time wait 溢出,见图三。 TCP 连接使用很高,容易超出限制。见图四。 1. 执行命令 netstat -anp |grep tcp |wc -l统计 TCP 连接数。2. 对比 /etc/sysctl.conf 配置文件的 net.ipv4.tcp_max_tw_buckets 最大值,看是否有超出情况。3. 执行命令 vi /etc/sysctl.conf,查询 net.ipv4.tcp_max_tw_buckets 参数。如果确认连接使用很高,容易超出限制。4. 调高参数 net.ipv4.tcp_max_tw_buckets,扩大限制。5. 执行命令 # sysctl -p 使配置生效。 ECS Linux 实例出现间歇性丢包的情况,通过 tracert, mtr 等手段排查,外部网络未见异常。同时,如下图所示,在系统日志中重复出现大量kernel nf_conntrack: table full, dropping packet.错误信息。见图五。 ip_conntrack 是 Linux 系统内 NAT 的一个跟踪连接条目的模块。ip_conntrack 模块会使用一个哈希表记录 TCP 通讯协议的 established connection 记录,当哈希表满了的时候,会导致 nf_conntrack: table full, dropping packet 错误。需要通过修改内核参数来调整 ip_conntrack 限制。 Centos 5.x 系统1. 使用管理终端登录实例。2. 执行命令 # vi /etc/sysctl.conf 编辑系统内核配置。3. 修改哈希表项最大值参数:net.ipv4.netfilter.ip_conntrack_max = 655350。4. 修改超时时间参数:net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200,默认情况下 timeout 是5天(432000秒)。5. 执行命令 # sysctl -p 使配置生效。Centos 6.x 及以上系统:1. 使用管理终端登录实例。2. 执行命令 # vi /etc/sysctl.conf 编辑系统内核配置。3. 修改哈希表项最大值参数:net.netfilter.nf_conntrack_max = 655350。4. 修改超时时间参数:net.netfilter.nf_conntrack_tcp_timeout_established = 1200,默认情况下 timeout 是5天(432000秒)。5. 执行命令 # sysctl -p 使配置生效。 客户端做了 NAT 后无法访问 ECS、RDS,包括通过 SNAT VPC 访问外网的 ECS 。无法访问连接其他 ECS 或 RDS 等云产品,抓包检测发现远端对客户端发送的 SYN 包没有响应。 若远端服务器同时开启 net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_timestamps,即参数取值为 1 时,服务器会检查每一个报文的时间戳(Timestamp),若 Timestamp 不是递增的关系,则不做处理。做了 NAT 后,服务器看到来自不同的客户端的 IP 相似,但 NAT 前每一台客户端的时间可能会有偏差,在服务器上就会看到 Timestamp 不是递增的情况。 - 远端服务器为 ECS:修改参数 net.ipv4.tcp_tw_recycle 为 0。- 远端服务器为 RDS 等 PaaS 服务:RDS 无法直接修改内核参数,需要在客户端上修改参数 net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_timestamps 为 0。 参考链接 Linux man-pages kernel/git/torvalds/linux.git_proc kernel/git/torvalds/linux.git_proc_net_tcp kernel/git/torvalds/linux.git_ip-sysctl kernel/git/torvalds/linux.git_netfilter-sysctl kernel/git/torvalds/linux.git_nf_conntrack-sysctl 图一: 客户端 B TCP 连接 图二: 客户端 A TCP 连接 图三: 报错提示 TCP time wait 溢出 图四: 查询 net.ipv4.tcp_max_tw_buckets 参数 图五: ECS Linux 实例间歇性丢包
KB小秘书 2019-12-02 02:05:57 0 浏览量 回答数 0

回答

名称accept()接收一个套接字中已建立的连接使用格式#include <sys/types.h> #include <sys/socket.h> int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);功能参数描述accept()系统调用主要用在基于连接的套接字类型,比如SOCK_STREAM和SOCK_SEQPACKET。它提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符。新建立的套接字不在监听状态,原来所监听的套接字也不受该系统调用的影响。备注:新建立的套接字准备发送send()和接收数据recv()。参数:sockfd, 利用系统调用socket()建立的套接字描述符,通过bind()绑定到一个本地地址(一般为服务器的套接字),并且通过listen()一直在监听连接;addr, 指向struct sockaddr的指针,该结构用通讯层服务器对等套接字的地址(一般为客户端地址)填写,返回地址addr的确切格式由套接字的地址类别(比如TCP或UDP)决定;若addr为NULL,没有有效地址填写,这种情况下,addrlen也不使用,应该置为NULL;备注:addr是个指向局部数据结构sockaddr_in的指针,这就是要求接入的信息本地的套接字(地址和指针)。addrlen, 一个值结果参数,调用函数必须初始化为包含addr所指向结构大小的数值,函数返回时包含对等地址(一般为服务器地址)的实际数值;备注:addrlen是个局部整形变量,设置为sizeof(struct sockaddr_in)。如果队列中没有等待的连接,套接字也没有被标记为Non-blocking,accept()会阻塞调用函数直到连接出现;如果套接字被标记为Non-blocking,队列中也没有等待的连接,accept()返回错误EAGAIN或EWOULDBLOCK。备注:一般来说,实现时accept()为阻塞函数,当监听socket调用accept()时,它先到自己的receive_buf中查看是否有连接数据包;若有,把数据拷贝出来,删掉接收到的数据包,创建新的socket与客户发来的地址建立连接;若没有,就阻塞等待;为了在套接字中有到来的连接时得到通知,可以使用select()或poll()。当尝试建立新连接时,系统发送一个可读事件,然后调用accept()为该连接获取套接字。另一种方法是,当套接字中有连接到来时设定套接字发送SIGIO信号。返回值成功时,返回非负整数,该整数是接收到套接字的描述符;出错时,返回-1,相应地设定全局变量errno。错误处理Linux下,accept()把已等待的网络错误传给新建立的连接,当作是accept()返回的错误。这于其他的BSD实现是不同的。为了可靠运行,应该在accept()之后检测协议已定义的一些网络错误,并把这些错误当作EAGAIN并重试。对于TCP/IP协议来说,主要有错误:ENETDOWN,EPROTO,ENOPROTOOPT,EHOSTDOWN,ENONET,EHOSTUNREACH,EOPNOTSUPP和ENETUNREACH。
云栖技术 2019-12-02 02:35:11 0 浏览量 回答数 0

回答

CPU资源监控(-u,或-P ALL) 例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令: sar -u -o test 10 3 屏幕显示如下: 17:06:16 CPU %user %nice %system %iowait %steal %idle 17:06:26 all 0.00 0.00 0.20 0.00 0.00 99.80 17:06:36 all 0.00 0.00 0.20 0.00 0.00 99.80 17:06:46 all 0.00 0.00 0.10 0.00 0.00 99.90 Average: all 0.00 0.00 0.17 0.00 0.00 99.83 输出项说明: CPU:all 表示统计信息为所有 CPU 的平均值。 %user:显示在用户级别(application)运行使用 CPU 总时间的百分比。 %nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 %system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。 %iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。 %steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 %idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。 若 %iowait 的值过高,表示硬盘存在I/O瓶颈 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。 如果要查看二进制文件test中的内容,需键入如下sar命令: sar -u -f test 2. inode、文件和其他内核表监控(-v) 例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令: sar -v 10 3 屏幕显示如下: 17:10:49 dentunusd file-nr inode-nr pty-nr 17:10:59 6301 5664 12037 4 17:11:09 6301 5664 12037 4 17:11:19 6301 5664 12037 4 Average: 6301 5664 12037 4 输出项说明: dentunusd:目录高速缓存中未被使用的条目数量 file-nr:文件句柄(file handle)的使用数量 inode-nr:索引节点句柄(inode handle)的使用数量 pty-nr:使用的pty数量 3. 内存和交换空间监控(-r) 例如,每10秒采样一次,连续采样3次,监控内存分页: sar -r 10 3 屏幕显示如下: 输出项说明: kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间. kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间. %memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比. kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap). %commit:这个值是kbcommit与内存总量(包括swap)的一个百分比. 4. 内存分页监控 例如,每10秒采样一次,连续采样3次,监控内存分页: sar -B 10 3 屏幕显示如下: 输出项说明: pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB) pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB) fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) majflt/s:每秒钟产生的主缺页数. pgfree/s:每秒被放入空闲队列中的页个数 pgscank/s:每秒被kswapd扫描的页个数 pgscand/s:每秒直接被扫描的页个数 pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数 %vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比 5. I/O和传送速率监控(-b) 例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令: sar -b 10 3 屏幕显示如下: 18:51:05 tps rtps wtps bread/s bwrtn/s 18:51:15 0.00 0.00 0.00 0.00 0.00 18:51:25 1.92 0.00 1.92 0.00 22.65 18:51:35 0.00 0.00 0.00 0.00 0.00 Average: 0.64 0.00 0.64 0.00 7.59 输出项说明: tps:每秒钟物理设备的 I/O 传输总量 rtps:每秒钟从物理设备读入的数据总量 wtps:每秒钟向物理设备写入的数据总量 bread/s:每秒钟从物理设备读入的数据量,单位为 块/s bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s 6. 进程队列长度和平均负载状态监控 例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态: sar -q 10 3 屏幕显示如下: 19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 19:26:00 0 259 0.00 0.00 0.00 19:26:10 0 259 0.00 0.00 0.00 19:26:20 0 259 0.00 0.00 0.00 Average: 0 259 0.00 0.00 0.00 输出项说明: runq-sz:运行队列的长度(等待运行的进程数) plist-sz:进程列表中进程(processes)和线程(threads)的数量 ldavg-1:最后1分钟的系统平均负载(System load average) ldavg-5:过去5分钟的系统平均负载 ldavg-15:过去15分钟的系统平均负载 7. 系统交换活动信息监控 例如,每10秒采样一次,连续采样3次,监控系统交换活动信息: sar - W 10 3 屏幕显示如下: 19:39:50 pswpin/s pswpout/s 19:40:00 0.00 0.00 19:40:10 0.00 0.00 19:40:20 0.00 0.00 Average: 0.00 0.00 输出项说明: pswpin/s:每秒系统换入的交换页面(swap page)数量 pswpout/s:每秒系统换出的交换页面(swap page)数量 8. 设备使用情况监控(-d) 例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令: sar -d 10 3 –p 屏幕显示如下: 17:45:54 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 17:46:04 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17:46:04 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17:46:04 vg_livedvd-lv_root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17:46:04 vg_livedvd-lv_swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 其中: 参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0 tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的. rd_sec/s:每秒读扇区的次数. wr_sec/s:每秒写扇区的次数. avgrq-sz:平均每次设备I/O操作的数据大小(扇区). avgqu-sz:磁盘请求队列的平均长度. await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒). svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间. %util:I/O请求占CPU的百分比,比率越大,说明越饱和. avgqu-sz 的值较低时,设备的利用率较高。 当%util的值接近 1% 时,表示设备带宽已经占满。 9.网络统计(-n) 使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息: sar -n DEV 1 1 sar -n DEV 1 1 Linux 2.6.32-358.el6.x86_64 (host_linux)01/17/2018 x86_64(2 CPU) 01:39:36 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 01:39:37 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:39:37 PM eth0 23.23 1.01 1.55 0.10 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 23.23 1.01 1.55 0.10 0.00 0.00 0.00 例如:sar -n DEV 1 2 将显示lo、eth0、eth1等信息 IFACE:就是网络设备的名称; rxpck/s:每秒钟接收到的包数目 txpck/s:每秒钟发送出去的包数目 rxbyt/s:每秒钟接收到的字节数 txbyt/s:每秒钟发送出去的字节数 rxcmp/s:每秒钟接收到的压缩包数目 txcmp/s:每秒钟发送出去的压缩包数目 txmcst/s:每秒钟接收到的多播包的包数目 sar -n EDEV 1 3 会针对网络设备回报其失败情况 rxerr/s:每秒钟接收到的损坏的包的数目 txerr/s:当发送包时,每秒钟发生的错误数 coll/s:当发送包时,每秒钟发生的冲撞(collisions)数(这个是在半双工模式下才有) rxdrop/s:由于缓冲区满,网络设备接收端,每秒钟丢掉的网络包的数目 txdrop/s:由于缓冲区满,网络设备发送端,每秒钟丢掉的网络包的数目 txcarr/s:当发送数据包时,每秒钟载波错误发生的次数 rxfram/s:在接收数据包时,每秒钟发生的帧对齐错误的次数 rxfifo/s:在接收数据包时,每秒钟缓冲区溢出错误发生的次数 txfifo/s:在发送数据包时,每秒钟缓冲区溢出错误发生的次数 sar -n SOCK 1 3 会针对socket连接进行汇报 totsck:被使用的socket的总数目 tcpsck:当前正在被使用于TCP的socket数目 udpsck:当前正在被使用于UDP的socket数目 rawsck:当前正在被使用于RAW的socket数目 ip-frag:当前的IP分片的数目 sar -n FULL 1 3 相当于上述DEV、EDEV和SOCK三者的综合。 10.sar日志保存(-o) 使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取: linux:~ # sar -n DEV 1 10 -o sar.out linux:~ # sar -d 1 10 -f sar.out 相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。 11.sar监控非实时数据 sar也可以监控非实时数据,通过cron周期的运行到指定目录下 例如:我们想查看本月27日,从0点到23点的内存资源. sa27就是本月27日,指定具体的时间可以通过-s(start)和-e(end)来指定. sar -f /var/log/sa/sa27 -s 00:00:00 -e 23:00:00 -r 要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
苍霞学子 2021-03-31 19:22:32 0 浏览量 回答数 0

问题

如何快速定位云主机的故障

作为一名从事Linux运维行业多年的运维人员,分享一下曾经在运维过程中遇到过的荆手的故障分析,供大家分享,如果你在使用云计算中有什么问题,可以根据以下方式来查找 遇到服务器故障,问题出现的原因很少可以一下就想到。我基本上都会从...
firstsko 2019-12-01 21:43:10 10637 浏览量 回答数 1

回答

本文介绍AliSQL的内核版本更新说明。 MySQL 8.0 20200229 新特性 Performance Agent:更加便捷的性能数据统计方案。通过MySQL插件的方式,实现MySQL实例内部各项性能数据的采集与统计。 在半同步模式下添加网络往返时间,并记录到性能数据。 性能优化 允许在只读实例上进行语句级并发控制(CCL)操作。 备实例支持Outline。 Proxy短连接优化。 优化不同CPU架构下的pause指令执行时间。 添加内存表查看线程池运行情况。 Bug修复 在低于4.9的Linux Kenerls中禁用ppoll,使用poll代替。 修复wrap_sm4_encrypt函数调用错误问题。 修复在滚动审核日志时持有全局变量锁的问题。 修复恢复不一致性检查的问题。 修复io_statistics表出现错误time值的问题。 修复无效压缩算法导致崩溃的问题。 修复用户列与5.6不兼容的问题。 20200110 新特性 Inventory Hint:新增了三个hint, 支持SELECT、UPDATE、INSERT、DELETE 语句,快速提交/回滚事务,提高业务吞吐能力。 性能优化 启动实例时,先初始化Concurrency Control队列结构,再初始化Concurrency Control规则。 异步清除文件时继续取消小文件的链接。 优化Thread Pool性能。 默认情况下禁用恢复不一致性检查。 更改设置变量所需的权限: 设置以下变量所需的权限已更改为普通用户权限: auto_increment_increment auto_increment_offset bulk_insert_buffer_size binlog_rows_query_log_events 设置以下变量所需的权限已更改为超级用户或系统变量管理用户权限: binlog_format binlog_row_image binlog_direct sql_log_off sql_log_bin 20191225 新特性 Recycle Bin:临时将删除的表转移到回收站,还可以设置保留的时间,方便您找回数据。 性能优化 提高短连接处理性能。 使用专用线程为maintain user服务,避免HA失败。 通过Redo刷新Binlog时出现错误会显式释放文件同步锁。 删除不必要的TCP错误日志。 默认情况下启用线程池。 Bug修复 修复慢日志刷新的问题。 修复锁定范围不正确的问题。 修复TDE的Select函数导致的核心转储问题。 20191115 新特性 Statement Queue:针对语句的排队机制,将语句进行分桶排队,尽量把可能具有相同冲突的语句放在一个桶内排队,减少冲突的开销。 20191101 新特性 为TDE添加SM4加密算法。 保护备实例信息:拥有SUPER或REPLICATION_SLAVE_ADMIN权限的用户才能插入/删除/修改表slave_master_info、slave_relay_log_info、slave_worker_info。 提高自动递增键的优先级:如果表中没有主键或非空唯一键,具有自动增量的非空键将是第一候选项。 对系统表和处于初始化状态线程用到的表,不进行Memory引擎到MyISAM引擎的自动转换。 Redo Log刷新到磁盘之前先将Binlog文件刷新到磁盘。 实例被锁定时也会影响临时表。 添加新的基于LSM树的事务存储引擎X-Engine。 性能优化 Thread Pool:互斥优化。 Performance Insight:性能点支持线程池。 参数调整: primary_fast_lookup:会话参数,默认值为true。 thread_pool_enabled:全局参数,默认值为true。 20191015 新特性 TDE:支持透明数据加密TDE(Transparent Data Encryption)功能,可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。 Returning:Returning功能支持DML语句返回Resultset,同时提供了工具包(DBMS_TRANS)便于您快捷使用。 强制将引擎从MyISAM/MEMORY转换为InnoDB:如果全局变量force_memory/mysiam_to_innodb为ON,则创建/修改表时会将表引擎从MyISAM/MEMORY转换为InnoDB。 禁止非高权限账号切换主备实例。 性能代理插件:收集性能数据并保存到本地格式化文本文件,采用文件轮循方式,保留最近的秒级性能数据。 Innodb mutex timeout cofigurable:可配置全局变量innodb_fatal_semaphore_wait_threshold,默认值:600。 忽略索引提示错误:可配置全局变量ignore_index_hint_error,默认值:false。 可关闭SSL加密功能。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 Bug修复 支持本地AIO的Linux系统内,在触发线性预读之前会合并AIO请求。 优化表/索引统计信息。 如果指定了主键,则直接访问主索引。 20190915 Bug修复 修复Cmd_set_current_connection内存泄露问题。 20190816 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 Statement Concurrency Control:通过控制并发数应对突发的数据库请求流量、资源消耗过高的语句访问以及SQL访问模型的变化,保证MySQL实例持续稳定运行。 Statement Outline:利用Optimizer Hint和Index Hint让MySQL稳定执行计划。 Sequence Engine:简化获取序列值的复杂度。 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 Performance Insight:专注于实例负载监控、关联分析、性能调优的利器,帮助您迅速评估数据库负载,找到性能问题的源头,提升数据库的稳定性。 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 Bug修复 修复文件大小计算错误的问题。 修复偶尔出现的内存空闲后再次使用的问题。 修复主机缓存大小为0时的崩溃问题。 修复隐式主键与CTS语句的冲突问题。 修复慢查询导致的slog出错问题。 20190601 性能优化 缩短日志表MDL范围,减少MDL阻塞的可能性。 重构终止选项的代码。 Bug修复 修复审计日志中没有记录预编译语句的问题。 屏蔽无效表名的错误日志。 MySQL 5.7基础版/高可用版 20200229 新特性 Performance Agent:更加便捷的性能数据统计方案。通过MySQL插件的方式,实现MySQL实例内部各项性能数据的采集与统计。 在半同步模式下添加网络往返时间,并记录到性能数据。 性能优化 优化不同CPU架构下的pause指令执行时间。 Proxy短连接优化。 添加内存表查看线程池运行情况。 Bug修复 修复DDL重做日志不安全的问题。 修复io_statistics表出现错误time值的问题。 修复更改表导致服务器崩溃的问题。 修复MySQL测试用例。 20200110 性能优化 异步清除文件时继续取消小文件的链接。 优化Thread Pool性能。 thread_pool_enabled参数的默认值调整为OFF。 20191225 新特性 内部账户管理与防范:调整用户权限保护数据安全。 性能优化 提高短连接处理性能。 使用专用线程为maintain user服务,避免HA失败。 删除不必要的TCP错误日志。 优化线程池。 Bug修复 修复读写分离时mysqld进程崩溃问题。 修复密钥环引起的核心转储问题。 20191115 Bug修复 修复主备切换后审计日志显示变量的问题。 20191101 新特性 为TDE添加SM4加密算法。 如果指定了主键,则直接访问主索引。 对系统表和处于初始化状态线程用到的表,不进行Memory引擎到MyISAM引擎的自动转换。 性能优化 Thread Pool:互斥优化。 引入审计日志缓冲机制,提高审计日志的性能。 Performance Insight:性能点支持线程池。 默认开启Thread Pool。 Bug修复 在处理维护用户列表时释放锁。 补充更多TCP错误信息。 20191015 新特性 轮换慢日志:为了在收集慢查询日志时保证零数据丢失,轮换日志表会将慢日志表的csv数据文件重命名为唯一名称并创建新文件。您可以使用show variables like '%rotate_log_table%';查看是否开启轮换慢日志。 性能代理插件:收集性能数据并保存到本地格式化文本文件,采用文件轮轮循方式,保留最近的秒级性能数据。 强制将引擎从MEMORY转换为InnoDB:如果全局变量rds_force_memory_to_innodb为ON,则创建/修改表时会将表引擎从MEMORY转换为InnoDB。 TDE机制优化:添加keyring-rds插件与管控系统/密钥管理服务进行交互。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 Bug修复 修复DDL中的意外错误Error 1290。 20190925 参数修改 将系统变量auto_generate_certs的默认值由true改为false。 增加全局只读变量auto_detact_certs,默认值为false,有效值为[true | false]。 该系统变量在Server端使用OpenSSL编译时可用,用于控制Server端在启动时是否在数据目录下自动查找SSL加密证书和密钥文件,即控制是否开启Server端的证书和密钥的自动查找功能。 20190915 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 20190815 新特性 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 Performance Insight:专注于实例负载监控、关联分析、性能调优的利器,帮助您迅速评估数据库负载,找到性能问题的源头,提升数据库的稳定性。 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 Bug修复 禁止在set rds_current_connection命令中设置rds_prepare_begin_id。 允许更改已锁定用户的信息。 禁止用关键字actual作为表名。 修复慢日志导致时间字段溢出的问题。 20190510版本 新特性:允许在事务内创建临时表。 20190319版本 新特性:支持在handshake报文内代理设置threadID。 20190131版本 升级到官方5.7.25版本。 关闭内存管理功能jemalloc。 修复内部变量net_lenth_size计算错误问题。 20181226版本 新特性:支持动态修改binlog-row-event-max-size,加速无主键表的复制。 修复Proxy实例内存申请异常的问题。 20181010版本 支持隐式主键。 加快无主键表的主备复制。 支持Native AIO,提升I/O性能。 20180431版本 新特性: 支持高可用版。 支持SQL审计。 增强对处于快照备份状态的实例的保护。 MySQL 5.7三节点企业版 20191128 新特性 支持读写分离。 Bug修复 修复部分场景下Follower Second_Behind_Master计算错误问题。 修复表级并行复制事务重试时死锁问题。 修复XA相关bug。 20191016 新特性 支持MySQL 5.7高可用版(本地SSD盘)升级到三节点企业版。 兼容MySQL官方GTID功能,默认不开启。 合并AliSQL MySQL 5.7基础版/高可用版 20190915版本及之前的自研功能。 Bug修复 修复重置备实例导致binlog被关闭问题。 20190909 新特性 优化大事务在三节点强一致状态下的执行效率。 支持从Leader/Follower进行Binlog转储。 支持创建只读实例。 系统表默认使用InnoDB引擎。 Bug修复 修复Follower日志清理命令失效问题。 修复参数slave_sql_verify_checksum=OFF和binlog_checksum=crc32时Slave线程异常退出问题。 20190709 新特性 支持三节点功能。 禁用semi-sync插件。 支持表级并行复制、Writeset并行复制。 支持pk_access主键查询加速。 支持线程池。 合并AliSQL MySQL 5.7基础版/高可用版 20190510版本及之前的自研功能。 MySQL 5.6 20200229 新特性 支持Proxy读写分离功能。 性能优化 优化线程池功能。 优化不同CPU架构下的pause指令执行时间。 Bug修复 修复XA事务部分提交的问题。 20200110 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 性能优化 异步清除文件时继续取消小文件的链接。 Bug修复 修复页面清理程序的睡眠时间计算不正确问题。 修复SELECT @@global.gtid_executed导致的故障转移失败问题。 修复IF CLIENT KILLED AFTER ROLLBACK TO SAVEPOINT PREVIOUS STMTS COMMITTED问题。 20191212 性能优化 删除不必要的tcp错误日志 20191115 Bug修复 修复慢日志时间戳溢出问题。 20191101 Bug修复 修复刷新日志时切换慢日志的问题,仅在执行刷新慢日志时切换慢日志。 修正部分显示错误。 20191015 新特性 轮换慢日志:为了在收集慢查询日志时保证零数据丢失,轮换日志表会将慢日志表的csv数据文件重命名为唯一名称并创建新文件。您可以使用show variables like '%rotate_log_table%';查看是否开启轮换慢日志。 SM4加密算法:添加新的SM4加密算法,取代旧的SM加密算法。 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 引入审计日志缓冲机制,提高审计日志的性能。。 Bug修复 禁用pstack,避免存在大量连接时可能导致pstack无响应。 修复隐式主键与create table as select语句之间的冲突。 自动清除由二进制日志创建的临时文件。 20190815 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 20190130版本 修复部分可能导致系统不稳定的bug。 20181010版本 添加参数rocksdb_ddl_commit_in_the_middle(MyRocks)。如果这个参数被打开,部分DDL在执行过程中将会执行commit操作。 201806** (5.6.16)版本 新特性:slow log精度提升为微秒。 20180426(5.6.16)版本 新特性:引入隐藏索引,支持将索引设置为不可见,详情请参见参考文档。 修复备库apply线程的bug。 修复备库apply分区表更新时性能下降问题。 修复TokuDB下alter table comment重建整张表问题,详情请参见参考文档。 修复由show slave status/show status可能触发的死锁问题。 20171205(5.6.16)版本 修复OPTIMIZE TABLE和ONLINE ALTER TABLE同时执行时会触发死锁的问题。 修复SEQUENCE与隐含主键冲突的问题。 修复SHOW CREATE SEQUENCE问题。 修复TokuDB引擎的表统计信息错误。 修复并行OPTIMIZE表引入的死锁问题。 修复QUERY_LOG_EVENT中记录的字符集问题。 修复信号处理引起的数据库无法停止问题,详情请参见参考文档。 修复RESET MASTER引入的问题。 修复备库陷入等待的问题。 修复SHOW CREATE TABLE可能触发的进程崩溃问题。 20170927(5.6.16)版本 修复TokuDB表查询时使用错误索引问题。 20170901(5.6.16)版本 新特性: 升级SSL加密版本到TLS 1.2,详情请参见参考文档。 支持Sequence。 修复NOT IN查询在特定场景下返回结果集有误的问题。 20170530 (5.6.16)版本 新特性:支持高权限账号Kill其他账号下的连接。 20170221(5.6.16)版本 新特性:支持读写分离简介。 MySQL 5.5 20181212 修复调用系统函数gettimeofday(2) 返回值不准确的问题。该系统函数返回值为时间,常用来计算等待超时,时间不准确时会导致一些操作永不超时。
游客yl2rjx5yxwcam 2020-03-08 13:18:55 0 浏览量 回答数 0

问题

运维人员处理云服务器故障方法七七云转载

我们团队为Ucloud云计算服务提供专家技术支持,每天都要碰到无数的用户故障,毕竟IAAS涉及比较底层的东西,不管设计的是大客户也好还是小客户,有了问题就必须要解决,也要要是再赶上修复时间紧、奇葩的技术平台、缺少信息和文档,基...
杨经理 2019-12-01 22:03:10 9677 浏览量 回答数 2

回答

在Logstore列表页面单击诊断可以查看当前Logstore的所有日志采集报错,本文档介绍具体报错类型及对应的处理方式。 若您遇到其他问题,请提交工单处理。 错误类型 错误说明 处理方式 LOGFILE_PERMINSSION_ALARM Logtail无权限读取指定文件。 检查服务器Logtail的启动账户,建议以root方式启动。 SPLIT_LOG_FAIL_ALARM 行首正则与日志行首匹配失败,无法对日志做分行。 检查行首正则正确性,如果是单行日志可以配置为.*。 MULTI_CONFIG_MATCH_ALARM 同一个文件,只能被一个Logtail的配置收集,不支持同时被多个Logtail配置收集。 说明 Docker标准输出可以被多个Logtail配置采集。 检查一个文件是否在多个配置中被收集,并删除多余的配置。 REGEX_MATCH_ALARM 正则表达式解析模式下,日志内容和正则表达式不匹配。 复制错误内容中的日志样例重新尝试匹配,并生成新的解析正则式。 PARSE_LOG_FAIL_ALARM JSON、分隔符等解析模式下,由于日志格式不符合定义而解析失败。 请单击错误信息,查看匹配失败的详细报错。 CATEGORY_CONFIG_ALARM Logtail采集配置不合法。 常见的错误为正则表达式提取文件路径作为Topic失败,其它错误请提工单解决。 LOGTAIL_CRASH_ALARM Logtail因超过服务器资源使用上限而崩溃。 请参考配置启动参数修改CPU、内存使用上限,如有疑问请提工单。 REGISTER_INOTIFY_FAIL_ALARM Linux下注册日志监听失败,可能由于没有文件夹权限或文件夹被删除。 检查Logtail是否有权限访问该文件夹或该文件夹是否被删除。 DISCARD_DATA_ALARM 配置Logtail使用的CPU资源不够或网络发送流控。 请参考配置启动参数修改CPU使用上限或网络发送并发限制,如有疑问请提工单解决。 SEND_DATA_FAIL_ALARM 主账号未创建任何AccessKey。 Logtail客户端机器与日志服务的服务器端无法连通或者网络链路质量较差。 服务器端写入配额不足。 主账号创建AK。 检查本地配置文件/usr/local/ilogtail/ilogtail_config.json,执行curl <服务器地址>,查看是否有内容返回。 为Logstore增加Shard数目,以支持更大数据量的写入。 REGISTER_INOTIFY_FAIL_ALARM Logtail为日志目录注册的inotify watcher失败。 请检查目录是否存在以及目录权限设置。 SEND_QUOTA_EXCEED_ALARM 日志写入流量超出限制。 在控制台扩容分区。 READ_LOG_DELAY_ALARM 日志采集进度落后于日志产生进度,一般是由于配置Logtail使用的CPU资源不够或是网络发送流控导致。 请参考Logtail配置启动参数修改CPU使用上限或网络发送并发限制,如有疑问请提工单。 DROP_LOG_ALARM 日志采集进度落后于日志产生进度,且未处理的日志轮转超过20个,一般是由于配置Logtail使用的CPU资源不够或是网络发送流控导致。 请参考Logtail配置启动参数修改CPU使用上限或网络发送并发限制,如有疑问请提工单。 LOGDIR_PERMINSSION_ALARM 没有日志监控目录读取权限。 请检查日志监控目录是否存在,若存在请检查目录权限设置。 ENCODING_CONVERT_ALARM 编码转换失败。 请检查日志编码格式配置是否与日志编码格式一致。 OUTDATED_LOG_ALARM 过期的日志,日志时间落后超过12小时。可能原因: 日志解析进度落后超过12小时。 用户自定义时间字段配置错误。 日志记录程序时间输出异常。 查看是否存在READ_LOG_DELAY_ALARM。如存在按照READ_LOG_DELAY_ALARM处理方式解决,若不存在请检查时间字段配置。 检查时间字段配置。若时间字段配置正确,请检查日志记录程序时间输出是否正常。 如有疑问请提工单。 STAT_LIMIT_ALARM 日志采集配置目录中的文件数超限。 检查采集配置目录是否有较多的文件和子目录,合理设置监控的根目录和目录最大监控深度。 DROP_DATA_ALARM 进程退出时日志落盘到本地超时,此时会丢弃未落盘完毕的日志。 该报错通常为采集严重阻塞导致,请参考Logtail配置启动参数修改CPU使用上限或网络发送并发限制,如有疑问请提工单。 INPUT_COLLECT_ALARM 输入源采集异常。 请参考错误提示处理。 HTTP_LOAD_ADDRESS_ALARM http输入的address不合法。 请检查address合法性。 HTTP_COLLECT_ALARM http采集异常。 请根据错误提示排查,一般由于超时导致。 FILTER_INIT_ALARM 过滤器初始化异常。 一般由于过滤器的正则表达式非法导致,请根据提示修复。 INPUT_CANAL_ALARM MySQL binlog运行异常。 请根据错误提示排查。在配置更新时canal服务可能重启,服务重启的错误可以忽略。 CANAL_INVALID_ALARM MySQL binlog内部状态异常。 此错误一般由于运行时表的schema信息变更导致meta不一致,请确认报错期间是否在修改表的schema。其他情况请提工单。 MYSQL_INIT_ALARM MySQL初始化异常。 请参考错误提示处理。 MYSQL_CHECKPOING_ALARM MySQL checkpoint格式异常。 请确认是否修改该配置中的checkpoint相关配置,其他情况请提工单。 MYSQL_TIMEOUT_ALARM MySQL查询超时。 请确认MySQL服务器和网络是否异常。 MYSQL_PARSE_ALARM MySQL查询结果解析失败。 请确认MySQL配置的checkpoint格式是否匹配对应字段的格式。 AGGREGATOR_ADD_ALARM 向队列中添加数据失败。 这种情况是由于数据发送过快,若真实数据量很大,则无需关心。 ANCHOR_FIND_ALARM anchor插件错误、配置错误或存在不符合配置的日志。 请单击错误查看详细报错,报错根据内容分为以下几类,请根据详细报错中的信息,检查相应的配置是否存在问题。 anchor cannot find key:配置中指定了SourceKey但日志中不存在对应的字段。 anchor no start:无法从SourceKey的值中找到Start对应的内容。 anchor no stop:无法从 SourceKey 的值中找到Stop对应的内容。 ANCHOR_JSON_ALARM anchor插件错误,对已配置的Start和Stop所确定的内容执行JSON展开时发生错误。 请单击错误查看详细报错,检查所处理的内容以及相关的配置,确定是否有配置错误或不合法日志。 CANAL_RUNTIME_ALARM binlog插件运行时错误。 请单击错误查看详细报错,根据错误信息进行进一步地排查,错误一般与所连接的MySQL master相关。 CHECKPOINT_INVALID_ALARM 插件内Checkpoint解析失败。 请单击错误查看详细报错,根据其中的检查点键、检查点内容(前 1024 个字节)以及具体的错误信息进行进一步排查。 DIR_EXCEED_LIMIT_ALARM Logtail同时监听的目录数超出限制。 检查当前Logstore的采集配置以及该Logtail上应用的其他配置是否会包含较多的目录数,合理设置监控的根目录和目录最大监控深度。 DOCKER_FILE_MAPPING_ALARM 执行Logtail命令添加Docker文件映射失败。 请单击错误查看详细报错,根据其中的命令以及具体的错误信息进行进一步排查。 DOCKER_FILE_MATCH_ALARM 无法在Docker容器中查找到指定文件。 请单击错误查看详细报错,根据其中的容器信息以及查找的文件路径进行进一步排查。 DOCKER_REGEX_COMPILE_ALARM docker stdout插件错误,根据配置中的BeginLineRegex构建正则表达式失败。 请单击错误查看详细报错,检查其中的正则表达式是否正确。 DOCKER_STDOUT_INIT_ALARM docker stdout采集初始化失败。 请单击错误查看详细报错,报错根据内容分为以下几类: host...version...error:请检查配置中指定的Docker engine是否可访问。 load checkpoint error:加载检查点失败,如无影响可忽略此错误。 container...:指定容器存在非法label值,目前仅允许配置stdout和stderr。请结合详细错误进行检查。 DOCKER_STDOUT_START_ALARM Docker stdout初始化采集时,stdout文件大小超过限制。 一般由于首次采集时stdout文件已存在,可忽略。 DOCKER_STDOUT_STAT_ALARM Docker stdout无法检查到stdout文件。 一般由于容器退出时无法访问到文件,可忽略。 FILE_READER_EXCEED_ALARM Logtail同时打开的文件对象数量超过限制。 一般由于当前处于采集状态的文件数过多,请检查采集配置是否合理。 GEOIP_ALARM geoip插件错误。 请单击错误查看详细报错,报错根据内容分为以下几类: invalid ip...:获取IP地址失败,请检查配置中的 SourceKey 是否正确或是否存在不合法日志。 parse ip...:根据IP地址解析城市失败,请查看详细错误信息进行排查。 cannot find key...:无法从日志中查看到指定的SourceKey,请检查配置是否正确或是否存在不合法日志。 HTTP_INIT_ALARM http插件错误,配置中指定的ResponseStringMatch正则表达式编译错误。 请单击错误查看详细报错,检查其中的正则表达式是否正确。 HTTP_PARSE_ALARM http插件错误,获取HTTP响应失败。 请单击错误查看详细报错,根据其中的具体错误信息对配置内容或所请求的HTTP服务器进行检查。 INIT_CHECKPOINT_ALARM binlog插件错误,加载检查点失败,插件将忽略检查点并从头开始处理。 请单击错误查看详细报错,根据其中的具体错误信息来确定是否可忽略此错误。 LOAD_LOCAL_EVENT_ALARM Logtail执行了本地事件处理。 此警告一般不会出现,如果非人为操作引起此警告,才需要进行错误排查。请单击错误查看详细报错,根据其中的文件名、配置名、project、logstore等信息进行进一步地排查。 LOG_REGEX_FIND_ALARM processor_split_log_regex以及 processor_split_log_string插件错误,无法从日志中获取到配置中指定的 SplitKey。 请单击错误查看详细报错,检查是否存在配置错误的情况。 LUMBER_CONNECTION_ALARM service_lumberjack插件错误,停止插件时关闭服务器错误。 请单击错误查看详细报错,根据其中的具体错误信息进行进一步排查,此错误一般可忽略。 LUMBER_LISTEN_ALARM service_lumberjack插件错误,初始化进行监听时发生错误。 请单击错误查看详细报错,报错根据内容分为以下几类: init tls error...:请结合具体的错误信息检查 TLS 相关的配置是否正确 listen init error...:请结合具体的错误信息检查地址相关的配置是否正确。 LZ4_COMPRESS_FAIL_ALARM Logtail执行LZ4压缩发生错误。 请单击错误查看详细报错,根据其中的log lines、project、category、region等值来进行进一步排查。 MYSQL_CHECKPOINT_ALARM MySQL插件错误,检查点相关错误。 请单击错误查看详细报错,报错根据内容分为以下几类: init checkpoint error...:初始化检查点失败,请根据错误信息检查配置指定的检查点列以及所获取的值是否正确。 not matched checkpoint...:检查点信息不匹配,请根据错误信息检查是否是由于配置更新等人为原因导致的错误,如果是则可忽略。 NGINX_STATUS_COLLECT_ALARM nginx_status插件错误,获取状态发生错误。 请单击错误查看详细报错,根据其中的URL以及具体的错误信息来进行进一步排查。 NGINX_STATUS_INIT_ALARM nginx_status插件错误,初始化解析配置中指定的URL失败。 请单击错误查看详细报错,根据其中的URL检查地址是否正确配置。 OPEN_FILE_LIMIT_ALARM Logtail已打开文件数量超过限制,无法打开新的文件。 请单击错误查看详细报错,根据其中的日志文件路径、Project、Logstore等信息进行进一步排查。 OPEN_LOGFILE_FAIL_ALARM Logtail打开文件出错。 请单击错误查看详细报错,根据其中的日志文件路径、Project、Logstore等信息进行进一步排查。 PARSE_DOCKER_LINE_ALARM service_docker_stdout插件错误,解析日志失败。 请单击错误查看详细报错,报错根据内容分为以下几类: parse docker line error: empty line:日志为空。 parse json docker line error...:以JSON格式解析日志失败,请根据错误信息以及日志的前512个字节进行排查。 parse cri docker line error...:以CRI格式解析日志失败,请根据错误信息以及日志的前512个字节进行排查。 PLUGIN_ALARM 插件初始化及相关调用发生错误。 请单击错误查看详细报错,报错根据内容分为以下几类,请根据具体的错误信息进行进一步排查。 init plugin error...:初始化插件失败。 hold on error...:暂停插件运行失败。 resume error...:恢复插件运行失败。 start service error...:启动 service input类型的插件失败。 stop service error...:停止 service input类型的插件失败。 PROCESSOR_INIT_ALARM regex插件错误,编译配置中指定的Regex正则表达式失败。 请单击错误查看详细报错,检查其中的正则表达式是否正确。 PROCESS_TOO_SLOW_ALARM Logtail日志解析速度过慢。 单击错误查看详细报错,根据其中的日志数量、缓冲区大小、解析时间来确定是否正常。 如果不正常,检查Logtail所在节点是否有其他进程占用了过多的CPU资源或是存在效率较低的正则表达式等不合理的解析配置。 REDIS_PARSE_ADDRESS_ALARM redis插件错误,配置中提供的ServerUrls存在解析失败的情况。 请单击错误查看详细报错,对其中报错的URL进行检查。 REGEX_FIND_ALARM regex 插件错误,无法从日志中找到配置中SourceKey指定的字段。 请单击错误查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 REGEX_UNMATCHED_ALARM regex插件错误,匹配失败。 请单击错误查看详细报错,报错根据内容分为以下几类,请根据具体的错误信息进行进一步地排查,例如检查配置是否正确。 unmatch this log content...:日志无法匹配配置中的正则表达式 match result count less...:匹配的结果数量少于配置中指定的 Keys 数量。 SAME_CONFIG_ALARM 同一个Logstore下存在同名的配置,后发现的配置会被抛弃。 请单击错误查看详细报错,根据其中的配置路径等信息排查是否存在配置错误的情况。 SPLIT_FIND_ALARM split_char以及split_string插件错误,无法从日志中找到配置中SourceKey指定的字段。 请单击错误查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 SPLIT_LOG_ALARM processor_split_char以及processor_split_string插件错误,解析得到的字段数量与SplitKeys中指定的不相同。 请单击错误查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 STAT_FILE_ALARM 插件内通过LogFileReader对象进行文件采集时发生错误。 请单击错误查看详细报错,根据其中的文件路径、错误信息进行进一步排查。 SERVICE_SYSLOG_INIT_ALARM service_syslog插件错误,初始化失败。 请单击错误查看详细报错,检查配置中的Address是否正确。 SERVICE_SYSLOG_STREAM_ALARM service_syslog插件错误,通过TCP采集时发生错误。 请单击错误查看详细报错,报错根据内容分为以下几类,请根据详细报错中的具体错误信息进行排查。 accept error...:执行Accept时发生错误,插件将等待一段时间后重试。 setKeepAlive error...:设置 Keep Alive失败,插件将跳过此错误并继续运行。 connection i/o timeout...:通过TCP读取时超时,插件将重设超时并继续读取。 scan error...:TCP 读取错误,插件将等待一段时间后重试。 SERVICE_SYSLOG_PACKET_ALARM service_syslog插件错误,通过UDP采集时发生错误。 请单击错误查看详细报错,报错根据内容分为以下几类,请根据详细报错中的具体错误信息进行排查。 connection i/o timeout...:通过UDP读取时超时,插件将重设超时并继续读取。 read from error...:UDP读取错误,插件将等待一段时间后重试。
保持可爱mmm 2020-03-26 23:02:18 0 浏览量 回答数 0

问题

服务器急救

遇到服务器故障,出现问题的原因很少能一目了然。raksmart基本上都会从以下步骤入手:尽可能搞清楚问题的前因后果,不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情...
fuwuqi1 2019-12-01 21:29:02 1556 浏览量 回答数 1

问题

在服务器上排除问题的头五分钟

遇到服务器故障,问题出现的原因很少可以一下就想到。我们基本上都会从以下步骤入手:一、尽可能搞清楚问题的前因后果不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还...
五弊三缺 2019-12-01 21:41:11 9114 浏览量 回答数 1

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT