linux系统层面调优和常见的面试题

bigdatalearnshare bigdatalearnshare     2022-12-11     640

关键词:

无论对Spark集群,还是Hadoop集群等大数据相关的集群进行调优,对linux系统层面的调优都是必不可少的,这里主要介绍3种常用的调优:

1.linux文件句柄

linux在整个系统层面和单个进程两个层面对打开的文件句柄进行限制。

配置文件/proc/sys/fs/file-max是对整个系统层面对打开的文件句柄最大数进行控制,单个用户或进程能够打开的文件句柄数受此限制。

通过ulimit -a查看当前用户或进程能够打开的最大文件数:

技术图片

上述只是默认值,在实际生产环境肯定是不够用的,如果配置过小,有时会报类似can‘t open so many files的错误。通过ulimit -n可以对该值进行临时修改。

如果想永久生效,需要修改配置文件/etc/security/limits.conf,如soft nofile 10000、hard nofile 10000追加到配置文件中。

 

2.单个用户最大进程数

上图中max user processes就是单个用户最大进程数的限制,通过ulimit -u可以临时修改。永久修改需要追加,如soft nproc 10000、hard nproc 10000到/etc/security/limits.conf文件中

3.swap分区

又被称为交换分区,占用的是磁盘空间。操作系统可以将一部分数据存于swap分区中,从而为当前运行的程序腾出足够的内存空间。但因为数据存于磁盘,性能会相对内存低,尤其是读写频繁的情绪,IO消耗会更大。

合理设置swap分区大小,比如设置为0,优先使用物理内存。设置方式echo vm.swappiness=0 >> /etc/sysctl.conf。

针对不同系统、用户需要修改的文件可能有所不同,比如对于普通用户最大打开进程限制配置文件/etc/security/limits.d/20-nproc.conf。

 

除了上述常见的3种调优,还有控制每个端口监听队列的最大长度等调优方式,这里不再赘述。

 

关于软限制和硬限制的补充:

上文中,soft是软限制,hard是硬限制。

软限制(soft limit):内核实际执行的限制,任何进程都可以将软限制设置为小于或等于对进程限制的硬限制的值、最大线程数和文件数。

硬限制(hard limit):可以在任何时候任何进程中设置,但硬限制需要由超级用户修改。

 

linux常见面试题

1.linux系统中获取pid为100的进程所监听的tcp端口号

netstat -npta | grep 100

 

 

2.查找/home目录下大小为10k的文件

find /home -size 10K

 

 

3.在当前目录中的Main.java中关键字keywords出现位置,并将结果追加到main.txt中find . -name Main.java | xargs grep -n "keywords" >> main.txt

【xargs将前一个命令的输出作为后一个命令的参数】

 

 

4.压缩文件夹testDir为testDir.tar.gz

tar -zcvf testDir.tar.gz  testDir/

 

 

5.解压缩文件testDir.tar.gz到路径/home/user中

tar -zxvf testDir.tar.gz -C /home/user

 

 

6.查看磁盘使用情况

df -h

 

 

7.查看内存使用情况

free -mt

 

8.改变当前路径下testDir及其下面所有文件和目录的所有者为tom,组为group-t

chown -R tom:group-t ./testDir

 

 

9.赋予testDir权限为rwxr-xr-x

chmod 755 testDir

 

 

10.查看文件app.log,从第3000行开始,显示1000行,即显示3000-3999行

cat app.log | tail -n +3000 | head -n 1000

 

 

11.查看文件app.log,显示1000行到3000行

cat app.log | head -n 3000 | tail -n +1000

 

 

12.统计当前文件夹下的app目录下,js文件数量ll ./app | grep "^-" | grep js | wc -l

^-:正则表达式,匹配文件

 


关注微信公众号:大数据学习与分享,获取更对技术干货



jvm性能调优

...比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。性能调优基本上按照以下步骤进行:明确优化目标、发现性能瓶颈、性能调优、通... 查看详情

mysql性能调优和优化技巧(代码片段)

...QL数据库性能的调优技巧。先决条件安装并运行MySQL的Linux系统,Centos或Ubuntu现有数据库操作系统和数据库的管理员凭据系统MySQL性能调优在系统级别, 查看详情

常见linux面试题

一、判断题1.Linux是单用户、多任务的操作系统  (?)2.使用在CentOS6和CentOS7中查看IP地址得命令都是ifconfig (?) 3.Linux 得发行版是建立在Linux内核版本之上得(√ ) 4.Windownsserver的服务器市场占有率... 查看详情

大厂java高级面试题汇总解答,超详细

二、六大性能调优技术(JVM调优+网络调优+数据库调优+LINUX内核调优+中间件底层探索+容器环境调优)手绘板(脑图)1、JVM调优JVM调优必备理论知识-GcCOLLECTOR-三色标记垃圾回收算法串讲JVM常见参数... 查看详情

linux网络数据包的揭秘以及常见的调优方式总结

...技术细节,这里先做一下大概的说明:NIC(networkinterfacecard)在系统启动过程中会向系统注册自己的各种信息,系统会分配专门的内存缓冲区,NIC接收到数据包之后,就会存放在内存缓冲区,通过硬件中断通知内核有新的数据包需要处... 查看详情

面试题:说下局部最优和全局最优的区别

...问题背景在优化的世界里,总避免不了的接触全局最优和局部最优的概念,那么这两者的区别是什么呢?问题解答全局最优:针对一定条件/环境下的一个问题/目标,若一项决策和所有解决该问题的决策相比较... 查看详情

并发与性能调优(面试题)

...号的笔试题,设计算法?2、 高并发情况下,我们系统是如何支撑大量的请求的?3、 集群如何同步会话状态?4、 负载均衡的原理?        网站访问量已经越来越大,响应速度越来越慢。5、 怎么提... 查看详情

运维工程师面试题及答案(网络运维工程师面试题)

在这里,整理了几个Linux系统运维的相关问题。有些问题没有标准答案。想参加Linux运维面试的朋友,请先考虑一下这些问题。一、Linux操作系统的知识1.常见的Linux发行版有什么?你最擅长哪个?那个官网是什么?请说明你擅长... 查看详情

linux面试常见题

1、shell实现找到当前目录以及子目录中名字包含king的文件find./|grepking2、tcpdump抓包参数-nne分别代表什么意思-nn:直接以IP及portnumber显示,而非主机名称服务和名称-e:每行的打印输出中将包括数据包的数据链路层头部信息3、一... 查看详情

linux运维面试常见问题

...术Alinux运维面试常见问题  这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,如下是我给大家整理的linux运维面试常见问题,希望对大家有所作用。  一、Linux操作系统知识  1.常见的Linux发行版... 查看详情

[转帖]2019年常见elasticsearch面试题解析(上)(代码片段)

...司es的集群架构,索引数据大小,分片有多少,以及一些调优手段。2、elasticsearch的倒排索引是什么3、elasticsearch索引数据多了怎么办,如何调优,部署4、elasticsearch是如何实现master选举的5、详细描述一下Elasticsearch索引文档的过... 查看详情

线程池的一些面试题

...理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。1.1常用方式那java中是怎样实现的线程池呢?是通过Executor框架实现的,该框架中用到了... 查看详情

面试重点系列操作系统常见面试重点题(万字图解)(代码片段)

【面试重点系列】操作系统常见面试重点题📒博客首页:铁甲小宝同学📒🌞文章目的:操作系统面试题分享🌞🙏博主也在学习阶段,如若发现问题,请告知,非常感谢🙏💗同时... 查看详情

数据库调优和数据库查询优化有啥区别? [关闭]

】数据库调优和数据库查询优化有啥区别?[关闭]【英文标题】:Whatisthedifferencebetweendatabasetuninganddatabasequeryoptimization?[closed]数据库调优和数据库查询优化有什么区别?[关闭]【发布时间】:2012-05-2915:47:11【问题描述】:谁能告诉... 查看详情

2021最常见的网络原理面试题好文收藏(代码片段)

推荐视频:腾讯游戏面试必问的UDP可靠性设计腾讯T2.3亲身经历分享,腾讯offer的获取之路及linux后台开发学习路线c/c++linux服务器开发学习地址:c/c++linux后台服务器高级架构师1.如何理解URI?URI,全称为(U... 查看详情

纱线上的 Spark Jobs |性能调优和优化

】纱线上的SparkJobs|性能调优和优化【英文标题】:SparkJobsonYarn|PerformanceTuning&Optimization【发布时间】:2017-11-1113:54:13【问题描述】:优化部署在基于Yarn的集群上的Spark作业的最佳方法是什么?.根据配置而不是代码级别查找更... 查看详情

jvm调优和参数配置

1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GCRoots  答:什么是垃圾:简单的说就是内存中已经不再被使用到的空间就是垃圾    要进行垃圾回收,如何判断一个对象是否可以被回收?      1引用计数... 查看详情

参数调优和特征工程,应该先哪个?

】参数调优和特征工程,应该先哪个?【英文标题】:Parametertuningandfeatureengineering,whichoneshouldbefirst?【发布时间】:2016-08-1223:22:10【问题描述】:我正在尝试训练SVM分类器,但我对ML很陌生。我知道这里有两个步骤:参数调整和... 查看详情