linux centos8 安装php7 nginx1.4 mysql8 ,运行php网站,各个模块从零开始配置
499 是 nginx 扩展的 4xx 错误,目的只是用于记录,并没有实际的响应。 看一下 nginx 源码 ngx_http_request.h 对 499 的定义:
使用java操作远程的mysql数据库的时候,第一次请求非常的慢,而且极其容易引起系统的崩溃报错连接超时
安装代理接口 1.检查操作系统版本和内核版本 lsb_release 操作系统 ********************************** LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga) Release: 5.4 Codename: Tikanga ********************************** uname -r 内核版本 ********************************** 2.6.18-164.el5 ********************************** 2.安装代理接口 在线代理下载HAproxy 1.5.9版本 安装步骤 (1)tar xzvf haproxy-1.5.9.tar.gz ********************************** haproxy-1.5.9/ haproxy-1.5.9/.gitignore haproxy-1.5.9/CHANGELOG haproxy-1.5.9/LICENSE haproxy-1.5.9/Makefile haproxy-1.5.9/README haproxy-1.5.9/ROADMAP haproxy-1.5.9/SUBVERS haproxy-1.5.9/VERDATE haproxy-1.5.9/VERSION haproxy-1.5.9/contrib/ ...... haproxy-1.5.9/tests/test_hashes.c haproxy-1.5.9/tests/test_pools.c haproxy-1.5.9/tests/testinet.c haproxy-1.5.9/tests/uri_hash.c ***************************************************** (2)针对内核版本进行安装 安装前先要看看内核的版本,我这里是2.6.18 make TARGET=linux26 PREFIX=/usr/local/hapropxy make install PREFIX=/usr/local/haproxy (3)设置配置文件 cd /usr/local/haproxy vi haproxy.cfg ***************************************************** ###########全局配置######### global log 127.0.0.1 local0 #[日志输出配置,所有日志都记录在本机,通过local0输出] log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug] daemon #以后台形式运行harpoxy #nbproc 1 #设置进程数量 pidfile /usr/local/haproxy/haproxy.pid #haproxy 进程PID文件 #ulimit-n 819200 #ulimit 的数量限制 maxconn 4096 #默认最大连接数,需考虑ulimit-n限制 chroot /usr/local/haproxy #chroot运行路径 uid 99 #运行haproxy 用户 UID gid 99 #运行haproxy 用户组gid #debug #haproxy 调试级别,建议只在开启单进程的时候调试 #quiet ########默认配置############ defaults log global mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK #option httplog #日
最近在mysqldump时,遭遇mysqldump: Error 2013错误。以为是常见的参数设置有问题,调整之后,也没有任何成效。原来发生了OOM,以下是其具体描述。
今天MySQL存储节点突然收到cpu持续100%的报警,持续时间长达数个小时。在控制台中通过show processlist查看当前进程,发现很多一模一样的SQL一直在运行,执行时间都超过数个小时。
图1 超时报错 就是这个异常(com.mysql.jdbc.exceptions.jdbc4. CommunicationsException:Communications link failure Last packet sent to the server was X ms ago),是由于MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常。那么既然是连接超时的问题,就要去MySQL中探究一下连接时间是怎么控制的。打开MySQL的控制台,运行:show variables like ‘%timeout%’,查看和连接时间有关的MySQL系统变量,得到如下结果:
针对上面第一种情况,很容易从字面意义就得出是读取超时。然而查询资料 JDBC 存在多种 timeout,仔细研究了一下,梳理一下。
在遭到DDos攻击后,整个服务都垮掉了。由于第四层交换机不堪重负,网络变得无法连接,从而导致业务系统也无法正常运转。安全组很快屏蔽了所有的DDos攻击,并恢复了网络,但业务系统却还是无法工作。 通过分析系统的thread dump发现,业务系统停在了JDBC API的调用上。20分钟后,系统仍处于WAITING状态,无法响应。30分钟后,系统抛出异常,服务恢复正常。
当数据量比较大,若SQL语句写的不合适,会导致SQL的执行效率低,我们需要等待很长时间才能拿到结果
connect timeout和socket timeout都属于TCP层面的超时。
主要是解决读数据从Redis缓存,一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。
jdbc提供fetchSize参数来设置每次查询按fetchSize分批获取。不同的数据库的jdbc driver实现不一样。
在传统的单机系统中,调用一个函数,要么返回成功,要么返回失败。这就是两态系统(2-state system)。
由于众所周知的原因,在国内使用 maven,会等待很长的时间来下载相应的 jar 包。
dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时....
有时候,由于业务的复杂性,在JVM中拼装一些数据,会造成资源的极大浪费。举个例子,从MySQL中查询出一个List,然后在代码里循环查询数据库,进行一些字段的填充。
最近利用 MHA 做好 Mysql 读写分离后,时不时有用户反馈后台发布文章时,报程序“通用异常",经问题排查,里面涉及应用JDBC连接池参数及Mysql参数调整问题。
这些地方都需要考虑超时的设定,但是PHP中的超时都是分门别类,各个处理方式和策略都不同,为了系统的描述,我总结了PHP中常用的超时处理的总结。
我们在编写网络程序时,通常需要连接其他服务端(如微服务之间的通信),这时就需要通过调用 connect 函数来连接服务端。但我们发现 connect 函数并没有提供超时的设置,而在 Linux 系统中,connect 的默认超时时间为75秒。所以,在连接不上服务端的情况下,我们需要等待75秒,这对我们不能接受的。
进入 MySQL 命令行后,长时间连接 MySQL 服务但未进行操作,MySQL服务自动断开,再次执行操作时出现以下提示
MySQL的优化指的是一个很大的系统,面试的时候我之前是从sql的语句优化方面去说的,这种优化也有作用,不过是从逻辑方面去优化。但是当所有的逻辑层面已经无可优化,所有的索引都已经加好,表结构也设计的合理,但是遇到高并发的时候,为什么MySQL还是扛不住呢。当然可以通过其他的方面去缓解MySQL的压力,这里我们暂且不谈。对于MySQL而言,我们要尽最大的可能去压榨机器的性能,让所有的计算资源都不浪费,都可以为我们服务。MySQL运行在服务器上,这里特指Linux服务器。那么服务器的硬盘、CPU,内存,网络都有影响到MySQL的性能。MySQl是非常耗费内存的,线上服务器的MySQL内存要吃到80%左右,内存过小,其他的优化空间其实很小。
运行工作进程数、运行CPU亲和力、最大打开文件数、gzip调优、防盗链、隐藏版本号、隐藏软件名、优化woeker进程数、优化nginx连接超时时间
内核定时器是内核用来控制在未来某个时间点(基于jiffies(节拍总数))调度执行某个函数的一种机制,相关函数位于 <linux/timer.h> 和 kernel/timer.c 文件中。
最近在使用java操作远程的mysql数据库的时候,第一次请求非常的慢,而且极其容易引起系统的崩溃报错连接超时
默认超时时间为 60 秒。根据 Shopify 的经验,5 秒的读取超时时间和 1 秒的写入超时时间是不错的设置。
开发反馈连 router 报错:'ERROR 1040 (HY000): Too many connections to MySQL Router',
当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免
爱可生 DBA 团队成员,主要负责 MySQL 日常维护、故障处理和性能优化。对技术执着,为客户负责。
Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。
最近发现之前部署在阿里云的一个web项目,每过一段时间就会报错,但是刷新下页面就会显示正常;在过了比较长的一段时间后,又会报同样的错误,如下:
最近做了一个多人竞拍的小功能 因为以前没做过 所以踩了很多坑 用的是 mysql + php + redis 实现的竞拍功能
无论你用任何语言或者是网络库,你都可以设置网络操作的超时时间,特别是connect,read,write的超时时间。
日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。
断路器(Circuit Breaker)就像保险丝,在电路系统中,一般在所有的家电系统连接外部供电的线路中间都会加一个保险丝,当外部电压过高,达到保险丝的熔点时,保险丝就会被熔断,从而可以切断家电系统与外部电路的联通,进而保障家电系统不会因为电压过高而损坏。
现代网站架构/业务架构越来越重视横向拓展的能力,随之而来的是 Server 或者容器的数量快速增长,但是传统 RDBMS 的扩展性无法跟上这种步伐,导致大量的数据库连接不断的在数据库端创建、断开,不仅性能方面受到影响,在个别极端情况下也会导致数据库本身出现卡死等影响业务的现象。
网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp)中的各种超时设置,于是就有了本篇博文。本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。
对于一些关键数据,例如账户数据,对可靠性和一致性的要求非常高。我们宁可牺牲短暂时间内的可用性,也不允许数据出现错误或丢失。所以早期我们会发现业界存在这种现象:DB设置了主备同步,主DB挂了,但是不敢切换到备DB,只能暂停服务。这种现象的主要原因有两点:
今天下午在线上遇到了一个业务反馈mysqldump频繁失败,大概的错误日志如下:
在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢?
最近处理一个web服务时,写数据库数据时,经常报“MySQL server has gone away”,一查发现是mysql的wait_timeout、interactive_timeout设置的过短,30s,导致超过这个时长,mysql server会自动断掉这个连接,后续再进行数据库操作就失败跑异常了。
我曾以为像定时器这样基础的功能,操作系统会有一个完备的实现。当需要开启一个定时任务的时候,会有一个优雅的、如下形式的接口:
前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 HAProxy相比LVS的使用要简单很多,但跟LVS一样,HAProxy自己并不能实现高可用,一旦HAProxy节点故障,将会影响整个站点。 本文带来的是HAProxy基于KeepAlived实现Web高可用及动静分离。 相关介绍 HAProxy HAProxy是一款提供高可用性、负载均衡以及基于TCP和HTTP应
今天介绍两个重要的工具:stress和stress-ng,用于Linux系统下进行压力测试:
一、问题现象:通过监控发现访问MySQL偶尔出现异常,查看日志错误为unexpected EOF。
这次分享是腾讯后端面经,面试接近 1 小时,问了非常多的问题,涵盖Linux、数据库、C++、操作系统、计算机网络。
领取专属 10元无门槛券
手把手带您无忧上云