博客
关于我
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/

你可能感兴趣的文章
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>