这是一个 Linux 系统常见的故障,网络上也能轻易的找到解决办法,我也只是在工作中遇到了这个问题,所以在博客记录下,以备不时之需。 一、报错截图: 图为 resin 的报错日志,很明显提示了 Too
三次握手: syn seq=x syn seq=y ack=x+1 ack=y+1 四次挥手: seq=x+2 ack=y+1 ack=x+3 seq=y+1 ack=y+2
一般在/etc/security/limits.conf 中修改最大打开文件数和进程数,如:
其实ulimit的讲解不属于C或者C++ 语言范畴,他只是在我们日常开发或者线上linux运行环境不可缺少的工具。
通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?
需要先对linux系统做一些优化,编辑/etc/security/limits.conf
自接触 linux 后,大家所受的教育就是 ulimit是最便捷的内核优化途径,事实也确实如此。
系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 Linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell进程及其子进程的资源使用设置限制。
文件系统及程序的限制关系: ulimit ulimit 限制用户的某些系统资源 包括可以开启的档案数量 可以使用的 CPU 时间 可以使用的内存总量等。 [root@www ~]# ulimit [-acdfHlmnpsStvw] [size] 选项与参数: -H : hard limit ,严格的设定,必定不能超过这个设定的数值 -S : soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告讯息 -a : 后面不接任何选项与参数,可列出所有的限制额度 -c : 当某些程序发生错误时,系统可能会将该程序在内存中的信息写成档案,这种档案就被称为核心档案(core file)。 -f : 此 shell 可以建立的最大档案容量(一般可能设定为 2GB)单位为 Kbytes -d : 程序可使用的最大断裂内存(segment)容量 -l : 可用于锁定 (lock) 的内存量 -m : 设置可以使用的常驻内存的最大值.单位:kbytes -n : 设置内核可以同时打开的文件描述符的最大值.单位:n -p : 设置管道缓冲区的最大值.单位:kbytes -s : 设置堆栈的最大值.单位:kbytes -v : 设置虚拟内存的最大值.单位:kbytes -t : 可使用的最大 CPU 时间 (单位为秒) -u : 单一用户可以使用的最大程序(process)数量 一般简单设置:ulimit -SHn 65535 让其永久生效: [root@www ~]# vi /etc/security/limits.conf * soft noproc 65535 * hard noproc 65535 * soft nofile 409600 * hard nofile 409600 * 代表针对所有用户 noproc 是代表最大进程数 nofile 是代表最大文件打开数 生产环境的案例: [root@www ~]# vi /etc/security/limits.conf # End of file * soft core unlimit * hard core unlimit * soft fsize unlimited * hard fsize unlimited * soft data unlimited * hard data unlimited * soft nproc 65535 * hard nproc 63535 * soft stack unlimited * hard stack unlimited * soft nofile 409600 * hard nofile 409600
Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。
SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903 limits.conf 文件实际是 Linu
本例中安装一个六个节点的集群,一个控制节点,两个管理节点,两个数据节点。控制节点主要安装Ambari、Ambari Metrics等服务,用于集群各服务的控制,监控,任务提交等。管理节点主要安装各服务的Master组件,如Namenode、ResourceManager、Hive、Hbase、KDC、OpenLdap、Ranger、Ambari infra等。数据节点主要安装各服务的Slave组件,如Datanode、NodeManager、Regionserver等。
大多数Linux 发布版都定义了适当的缓冲区和其他 Transmission Control Protocol(TCP)参数。可以修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是通过 proc 接口,也就是通过读写 /proc 中的值。幸运的是,sysctl 可以读取 /etc/sysctl.conf 中的值并根据需要填充/proc,这样就能够更轻松地管理这些参数。清单2 展示在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。
1、内核优化 ECHOSTR='net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time =600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_m
我对Linux非常的精通,尤其是脚本语言比如sed、awk、python等,用起来更是炉火纯青。我把它作为自己一个非常特立独行的技能,一个和其他普通程序员区别开来的技能。所以在我写脚本的时候,我都会自豪的抬高我的头,鼻孔朝天冥思精悍的code。
📷 #参考文档;达梦数据库单机部署参考文档(1) 达梦官网链接 https://www.dameng.com/ 📷 #修改操作系统资源限制 vim /etc/security/limits.conf dmdba soft noproc 65536 dmdba hard noproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba hard core unlimited dmdba soft core unlimited vi /et
用命令查询系统是32位还是64位 getconf LONG_BIT or getconf WORD_BIT 例如: [root@sy02 /]# getconf LONG_BIT 64 file command 例如: [root@sy02 /]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses share
为什么要性能调优? 大部分的linux发行版是为了完全兼容市场中大部分计算机而设计的。这是一个相当混杂的硬件集合(硬盘,显卡,网卡,等等)。所以Red Hat, Suse,Mandriva和其他的一些发行版厂商选择了一些保守的设置来确保安装成功。 简单地说:你的发行版运行的很好,但是它可以运行地更好! 比如,可能有一个具体一些特殊特性的高级硬盘,而这些特性在标准配置的情况下可能就没被启用。 磁盘子系统的调优 对于Linux的Ext3/4来说,几乎在所有情况下都有所帮助的一个参数是关闭文件系统访问时间,在/
在tomca7/bin 目录下面,新建 setenv.sh配置,catalina.sh启动的时候会调用,同时配置java内存参数 setenv.sh的内容如下:
(需要安装dm的光驱文件dm8_20200907_x86_rh6_64_ent_8.1.1.126.iso)
Jexus web server 5.1 每个工作进程的最大并发数固定为1万,最多可以同时开启4个工作进程,因此,每台Jexus V5.1服务器最多可以到支持4万个并发连接。但是,按照linux系统的默认设定,linux是不能支持这么高的并发请求的,只有对linux进行一些必要的优化,才能达到让Jexus支持大并发的目的。 一、调整文件描述符数量限制 linux默认文件描述符只有1024个,对于Jexus 等一些服务来说,在大负载的情况下这点文件描述符是远远不够的,因为Jexus 的工作方式,文件描述符
Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量 系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制. /proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量 linux 中数据的含义 /proc/sys/fs/file-nr [root@localhost logs]# cat /proc/sys/fs/fi
时间序列数据库(Time Series Database)是用于存储和管理时间序列数据的专业化数据库,具备写多读少、冷热分明、高并发写入、无事务要求、海量数据持续写入等特点,可以基于时间区间聚合分析和高效检索,广泛应用在物联网、经济金融、环境监控、工业制造、农业生产、硬件和软件系统监控等场景。
1. location / {} 2. location /abc {} #高优先级
PS:这里就没分 hot warm cold 这种三级存储,我们一般使用 hot warm 2种即可。
前言 记得第一次接触/etc/security/limits.conf和/etc/sysctl.conf时 是因为部署Oracle时要按需修改内核参数。limits.conf文件实际是Linux PA
Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l
系统负载能力浅析 互联网时代,高并发是一个老生常谈的话题。无论对于一个web站点还是app应用,高峰时能承载的并发请求都是衡量一个系统性能的关键标志。像阿里双十一顶住了上亿的峰值请求、订单也确实体现了阿里的技术水平(当然有钱也是一个原因)。 那么,何为系统负载能力?怎么衡量?相关因素有哪些?又如何优化呢? 一. 衡量指标 用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxCon
client_body_buffer_size 1m; //请求体缓冲区大小(post大的要设置) client_max_body_size 10m; //如果有上传文件要设置 client_body_in_file_only clean; //请求body将被写入文件。 该文件将在处理请求后删除。 client_body_temp_path;client_body_temp_pathtemp_files;//临时文件位置 client_header_buffer_size 500k; //头部缓冲区
在使用PostgreSQL的时候,经常会遇到这样的错误提示, sorry, too many clients already,这是因为默认PostgreSQL最大连接数是 100, 一般情况下,个人使用时足够的,但是在生产环境,这个连接数是远远不够的;
KeepAlive是什么东西?它是http协议的一部分,让我们复习一下没有KeepAlive的http请求,从客户在浏览器输入一个有效url地址开始,浏览器就会利用socket向url对应的web服务器发送一条TCP请求,这个请求成功一次就得需要来回握三次手才能确定,成功以后,浏览器利用socket TCP连接资源向web服务器请求http协议,发送以后就等着web服务器把http返回头和body发送回来,发回来后浏览器关闭socket连接,然后做http返回头和body的解析工作,最后呈现在浏览器上的就是漂亮的页面了。这里面有什么问题呢?TCP连接需要三次握手,也就是来回请求三次方能确定一个TCP请求是否成功,然后TCP关闭呢?来回需要4次请求才能完成!每次http请求就3次握手,4次拜拜,这来来回回的不嫌累啊,多少时间和资源都被浪费在socket连接关闭上了,能不能一次socket TCP连接发送多次http请求呢?于是KeepAlive就应运而生,http/1.0里需要客户端自己在请求头加入Connection:Keep-alive方能实现,在这里我们只考虑http1.1了,只需要设置一下Apache,让它默认就是Keep-Alive持久连接模式(Apache必须1.2+才能支持Keep-Alive)。在httpd.conf里找到KeepAive配置项,果断设置为On,MaxKeepAliveRequests果断为0(一个持久TCP最多允许的请求数,如果过小,很容易在TCP未过期的情况下,达到最大连接,那下次连接就又是新的TCP连接了,这里设置0表示不限制),然后对于mysql_pconnect最重要的选项KeepAliveTimeout设置为15(表示15秒), httpd-2.4支持毫秒级持久时间。 测试:
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.
一. 衡量指标 用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxConnection为无限大,但是受限于服务器系统或者硬件限制,很多请求是不会在一定的时间内得到响应的,这并不作为一个成功的请求,其中成功得到响应的请求数即为每秒请求数,反应出系统的负载能力。 通常的,对于一个系统,增加并发用户数量时每秒请求数量也会增加。然而,我们最终会达到这样一个点,此时并发用户数量开始“压倒
CDP数据中心版7.0.3是Cloudera与Hortonworks合并后,第一个融合CDH和HDP所有组件的on-premise版本,CDP Data Center主要由Cloudera Runtime构成,Cloudera Runtime由超过35个开源项目组成,当然CDP Data Center还包括其它功能如管理功能Cloudera Manager,Key Management,专业支持等.
CDP DC7.1是Cloudera与Hortonworks合并后,第一个融合CDH和HDP所有组件的on-premise并且可用于生产环境的版本,CDP Data Center主要由Cloudera Runtime构成,Cloudera Runtime由超过35个开源项目组成,当然CDP Data Center还包括其它功能如管理功能Cloudera Manager,Key Management,专业支持等,如下图所示:
之前用的Oracle数据库是部署在windows上面的,最近有点不太稳定了,寻思着迁移到Linux上面会不好一点,因此做一下记录。这次迁移的是非GUI版的操作,GUI版会有不同。
# Default runlevel. The runlevels used are:
描述:它是个ELF可执行文件,该命令将系统配置变量值写入标准输出用于获取系统信息,在进行LINUX编程中可以提供其帮忙;
之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:
一、编译安装前的优化 编译安装前的优化主要是用来修改程序名等等,通过更改源码以便隐藏软件名称和版本号。
CDP PVC BASE7.1.8是Cloudera与Hortonworks合并后,第一个融合CDH和HDP所有组件的on-premise并且可用于生产环境的新功能版本,CDP PvC Base主要由Cloudera Runtime构成,Cloudera Runtime由超过40个开源项目组成,当然CDP PvC Base还包括其它功能如管理功能Cloudera Manager,Key Management,专业支持等。Cloudera Runtime的主要组件版本如下图所示:
1)在各个JournalNode节点上,输入以下命令启动journalnode服务:(前提zookeeper集群已启动)
Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形。即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用。GSD则是用于支持dbca,srvctl,oem等的交互工具。本文描述将这两个服务切换到online。
切片主要就是针对获取列表中部分或者单个元素的方法,通过下标访问列表中的元素,下标从0开始计数
平时使用Ubuntu比较少,相关操作不甚熟悉,对ubuntu查看内核修复信息的一些方法做下记录
Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.
简单介绍 Linux 容器是一种轻量级“虚拟化”方法,用于在单个控制主机上同一时候执行多个虚拟装置(容器)。还有一个可用来描写叙述 Linux 容器所执行的操作的术语是“容器化”。 Linux 容器提供操作系统级别的虚拟化,当中的内核控制隔离的容器。容器通过内核控制组 (cgroup) 和内核命名空间进行隔离。通过 Xen 和 KVM 等其它完整虚拟化解决方式,虚拟化子系统可模拟完整的硬件环境。
oracle@Linux:~> lsnrctl stop oracle@Linux:~> sqlplus / as sysdba SQL> shutdown immediate; SQL> exit
1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [root@q1test01 ~]# uname -a Linux q1
领取专属 10元无门槛券
手把手带您无忧上云