我如何确定何时在我们的Linux机器上使用交换空间?

戴夫

我们正在尝试调整我们的应用程序服务器,它们是Amazon Linux计算机...

[myuser@mymachine ~]$ uname -a
Linux mymachine.myco.org 4.3.17-14.25.amzn1.x86_64 #1 SMP Wed May 10 01:58:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

我们的机器上只有一个JBoss进程在运行(就是我们已经启动的进程)。机器有30GB的内存,Jboss进程分配了25GB(使用“ -Xmx25600m” Java选项)。机器什么时候开始使用交换空间?当我运行“ free -m”时,我看不到使用任何交换空间,这是我期望的...

[myuser@mymachine ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:         30103       7238      22864          0        172       4438
-/+ buffers/cache:       2627      27475
Swap:            0          0          0

我以为只有在我们开始用尽内存时才使用swap,但是被告知这不一定是正确的。机器什么时候开始使用交换空间?

迈克尔·达芬(Michael Daffin)

Linux通常会尝试将内存保留在ram中,只有当可用ram(即应用程序,缓冲区和缓存的文件使用的ram总数)用尽时,它们才会开始交换。何时开始交换是可以配置的,但是可以根据您的设置而有所不同,并由该swappiness控制查看当前swappiness值设置为运行

cat /proc/sys/vm/swappiness

大多数系统的默认值约为60。该值越低,内核将越积极地将事物保留在ram内并将其设置为0,将完全禁用交换(交换将用于休眠,但在运行时不会主动使用)。

仅当系统的内存几乎完全由应用程序,缓冲区和缓存组合在一起时,才可使用Swappiness。当应用程序请求更多内存时,它会丢弃内核将缓存数据丢弃或将一些较少使用的内存写入磁盘,从而改变了内核偏爱的内核。swappiness值控制这两者之间的比率,其中1基本上总是丢弃高速缓存,而100会使大多数时间交换应用程序数据。

您可以使用以下命令动态配置系统的交换能力

sysctl vm.swappiness=10

并通过编辑将其永久设置/etc/sysctl.conf为包括

vm.swappiness = 10

对于您的服务器具有使用大量ram和JVM的服务器的情况,如果您根本不愿意进行太多交换,那么将这个值降低到10甚至1可能是有益的。在大多数带有大量内存的现代系统上,将其降低到10通常是有益的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何确定何时在硒C#中使用JavaScriptExecutor?

来自分类Dev

我们如何在此类数据上使用机器学习算法?

来自分类Dev

服务器代理在 linux 机器上运行,服务在不同的端口上运行,我们如何才能在不同的端口上使用 CPU?

来自分类Dev

我们如何确定日志文件中的已用空间?

来自分类Dev

我们如何通过git在Windows上使用linux命令?

来自分类Dev

为什么/何时我们更喜欢使用std :: swap; 在std :: iter_swap(&a,&b)上交换(a,b)?

来自分类Dev

我们如何在原始类型上使用.class?

来自分类Dev

我们如何在原始类型上使用.class?

来自分类Dev

如何确定我的Linux机器的性能瓶颈?

来自分类Dev

我们如何生成MCE(机器检查错误)

来自分类Dev

我们如何同步 NAO 机器人?

来自分类Dev

何时允许我们在Java中使用“ new”关键字以及如何使用它?

来自分类Dev

当我们在android中交换钢琴类型按钮时如何使用选择器

来自分类Dev

我们应该使用机器范围的Wine前缀吗?

来自分类Dev

我们何时以及为什么必须使用 malloc?

来自分类Dev

我们如何确定应在Elasticsearch中将文档存储在哪个节点上?

来自分类Dev

我们如何使用AIML制作聊天机器人?

来自分类Dev

我们如何在配置文件中使用新启动的机器 IP

来自分类Dev

如何确定我们是否在主线程中运行?

来自分类Dev

如何确定我们来自哪个活动?

来自分类Dev

我们如何确定Connection.close()被调用

来自分类Dev

我们如何确定IP地址的类别?

来自分类Dev

我们如何确定Intel Pentium页面表的大小?

来自分类Dev

如何确定我们来自哪个活动?

来自分类Dev

我们如何确定发起SignalR扩展方法的组?

来自分类Dev

我们如何确定神经网络的效率

来自分类Dev

我们如何检查 TinyMCE 编辑器是否使用 Javascript 在我们的网页上初始化?

来自分类Dev

我们如何使用opencart事件?

来自分类Dev

如何对我们使用clearInterval()函数?

Related 相关文章

  1. 1

    我们如何确定何时在硒C#中使用JavaScriptExecutor?

  2. 2

    我们如何在此类数据上使用机器学习算法?

  3. 3

    服务器代理在 linux 机器上运行,服务在不同的端口上运行,我们如何才能在不同的端口上使用 CPU?

  4. 4

    我们如何确定日志文件中的已用空间?

  5. 5

    我们如何通过git在Windows上使用linux命令?

  6. 6

    为什么/何时我们更喜欢使用std :: swap; 在std :: iter_swap(&a,&b)上交换(a,b)?

  7. 7

    我们如何在原始类型上使用.class?

  8. 8

    我们如何在原始类型上使用.class?

  9. 9

    如何确定我的Linux机器的性能瓶颈?

  10. 10

    我们如何生成MCE(机器检查错误)

  11. 11

    我们如何同步 NAO 机器人?

  12. 12

    何时允许我们在Java中使用“ new”关键字以及如何使用它?

  13. 13

    当我们在android中交换钢琴类型按钮时如何使用选择器

  14. 14

    我们应该使用机器范围的Wine前缀吗?

  15. 15

    我们何时以及为什么必须使用 malloc?

  16. 16

    我们如何确定应在Elasticsearch中将文档存储在哪个节点上?

  17. 17

    我们如何使用AIML制作聊天机器人?

  18. 18

    我们如何在配置文件中使用新启动的机器 IP

  19. 19

    如何确定我们是否在主线程中运行?

  20. 20

    如何确定我们来自哪个活动?

  21. 21

    我们如何确定Connection.close()被调用

  22. 22

    我们如何确定IP地址的类别?

  23. 23

    我们如何确定Intel Pentium页面表的大小?

  24. 24

    如何确定我们来自哪个活动?

  25. 25

    我们如何确定发起SignalR扩展方法的组?

  26. 26

    我们如何确定神经网络的效率

  27. 27

    我们如何检查 TinyMCE 编辑器是否使用 Javascript 在我们的网页上初始化?

  28. 28

    我们如何使用opencart事件?

  29. 29

    如何对我们使用clearInterval()函数?

热门标签

归档