博客
关于我
linux系统层面调优和常见的面试题
阅读量:408 次
发布时间:2019-03-06

本文共 1807 字,大约阅读时间需要 6 分钟。

无论对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

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

 


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

转载地址:http://rnvkz.baihongyu.com/

你可能感兴趣的文章
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>