问题标签 [huge-pages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何获得巨大页面大小的值?
我希望直接从我的 C 代码中获取大页面大小的值,而无需运行 bash 命令。
从 bash 我可以做到这一点
其次如何使用具有 1G 大页面大小的 mmap ?
谢谢
更新
片段代码
输出
这里 gethugepagesize 返回 2 Mb 1Gb 大页面呢?
ajax - 使用 100 个输入框命名和事件处理站点的最优雅方式是什么?
基本上,我有这个应用程序样式的网页,其中包含数百个输入字段(隐藏在选项卡和手风琴/假对话框等...),我希望一旦控件失去焦点/击键“输入/选项卡”已经命中,(而不是提交)我想使用 AJAX 将帖子发送回服务器以更新该字段。
现在,当试图弄清楚命名约定/标签/类等时,我开始围绕如何最好地命名事物以最好地利用 Jquery 的选择器功能,同时简洁地处理事件。
所以我的计划是在后端数据库中创建一个表,其中包含几乎整个数据库的表架构,具有唯一的 id 和位置描述符(表/fldName/数据类型等)。我正在考虑使用该唯一 ID 作为分配给 html 中每个输入元素的 ID;然后在整个包装的输入集上设置一个事件侦听器,然后
— 通过 id 引用一个数组,该数组基本上包含 dbFields 信息
— 检查客户端安全性
— 数据验证
— 将带有 id 的值发送到 php
o php 那么服务器端安全检查吗?再次验证数据。
o php 发送到相关的存储过程以更新信息
所以我的问题是;这是以某种方式引用所有输入的一种优雅方式,所以我设置了一个在任何输入更新时调用的通用侦听器?
我们欢迎所有的建议..
c - 如何在 linux 内核模块中分配由 1GB HugePages 支持的 DMA 缓冲区?
我正在尝试为 HPC 工作负载分配 DMA 缓冲区。它需要 64GB 的缓冲区空间。在计算之间,一些数据被卸载到 PCIe 卡上。与其将数据复制到 pci_alloc_consistent 给定的一堆 4MB 缓冲区,我只想创建 64 个 1GB 缓冲区,由 1GB HugePages 支持。
一些背景信息:内核版本:CentOS 6.4 / 2.6.32-358.el6.x86_64 内核启动选项:hugepagesz=1g hugepages=64 default_hugepagesz=1g
/proc/meminfo 的相关部分: AnonHugePages:0 kB HugePages_Total:64 HugePages_Free:64 HugePages_Rsvd:0 HugePages_Surp:0 Hugepagesize:1048576 kB DirectMap4k:848 kB DirectMap2M:2062336 kB DirectMap1G:132120576 kB
我可以挂载 -t hugetlbfs nodev /mnt/hugepages。CONFIG_HUGETLB_PAGE 为真。MAP_HUGETLB 已定义。
我已经阅读了一些有关使用 libhugetlbfs 在用户空间中调用 get_huge_pages() 的信息,但理想情况下,该缓冲区将分配在内核空间中。我尝试使用 MAP_HUGETLB 调用 do_mmap() ,但它似乎并没有改变空闲大页面的数量,所以我认为它实际上并不是用大页面支持 mmap。
所以我猜我在做什么,有什么办法可以将缓冲区映射到内核空间中的 1GB HugePage,还是必须在用户空间中完成?或者,如果有人知道我可以获得大量(1-64GB)连续物理内存作为内核缓冲区的方法吗?
javascript - 如何提高 JavaScript 性能/减少大型 HTML 页面上的页面负载?
我们有一个如下的页面布局,带有用于大量 HTML 元素(数千个 DIV)的 jQuery 单击处理程序。
布局是这样的:
导航栏包含至少 2000 多个 DIV 和 UL 、 LI(用于内容导航),并且我们将 jQuery 事件处理程序绑定到每个元素:
加载需要很多时间,在 IE 上性能很糟糕!无论如何我们可以改进它吗?或任何替代设计来处理这个问题?
javascript - 使用 javascript/jquery 从 HTML 中清空巨大的 div
我在使用 javascript(+jquery 或其他)从我的 html 中删除巨大的 div 时遇到了一些问题。实际上这需要太多时间,我正在寻找更快的解决方案,因为它太长了是不可接受的。Div 真的很大,它包含大约 13k 行,我需要根据用户需求将这些行更改为其他行(添加新行比删除旧行要少得多......)。我试过了:
1)
2)
3)
4)
没有什么对我有用。寻找更快的解决方案
linux - 如何从崩溃的应用程序中释放大页面
我有一个使用大页面的应用程序,由于某些错误,该应用程序突然崩溃。崩溃后,由于应用程序没有正确释放hugepage,因此sys文件系统中的空闲hugepage数没有增加。
有没有办法强制释放大页面?
c - Linux Huge Pages 和 fork() 后 SIGBUS 终止子进程
在 Linux 中,通过虚拟文件系统hugetlbfs提供对大页面的访问。libhugetlbfs库接口与 hugetlbfs配合使用,可提供更方便的特定应用程序级服务。
libhugetlbfs可用于使现有应用程序对其所有malloc()调用使用大页面。
要使用自动大页面malloc()功能运行程序,我设置了以下环境变量:
- 设置LD_PRELOAD=libhugetlbfs.so
- 将LD_LIBRARY_PATH设置为包含libhugetlbfs.so的目录
- 设置HUGETLB_MORECORE=yes
现在,我的新进程对所有malloc()内存使用大页面(如果有)。但是当它执行fork()系统调用并且如果系统上没有足够的大页面时,孩子会被SIGBUS终止。发生这种情况是因为当孩子尝试更新 malloc 内存中的某个内存位置时,会发生页面错误。由于 Copy-On-Write 机制,系统尝试将新的大页面分配给子页面以服务页面错误。但是由于没有可用的大页面,内核会生成SIGBUS并输出错误。
我将不胜感激任何帮助/指针来解决SIGBUS对孩子的丑陋终止并导致核心。
c - 如何以编程方式获取特定地址的页面大小?
我正在寻找一种方法来实现一个获取地址的函数,并告诉该地址中使用的页面大小。一种解决方案是在 /proc//smaps 的段中查找地址并返回“KernelPageSize:”的值。该解决方案非常慢,因为它涉及线性读取文件,该文件可能很长。我需要一个更快、更有效的解决方案。
有系统调用吗?(int getpagesizefromaddr(void *addr);) 如果没有,有没有办法推断页面大小?
c++ - 即使有足够的可用页面,shmget 也会因 ENOMEM 失败
尝试从大页面分配大约 10MB 的内存块时,我们遇到了奇怪的行为。系统是 SL6.4 64 位,最新的 Intel CPU,64GB RAM。
最初我们分配了 20 个大页面,这应该足够了。
其他大页面设置:
shmget 因 ENOMEM 失败。我能找到的唯一解释是在手册页中指出“不能为段开销分配内存”。但我无法发现“段开销”是什么。
在具有相同页数的另一台服务器上配置 shmget 成功返回。
在问题服务器上,我们将大页面的数量增加到 100。分配成功但也分配了 64 个 2MB 大页面:
调用 shmget 的代码如下。这仅在应用程序中被调用一次。uint64_t GetHugePageSize() { 文件 *meminfo = fopen("/proc/meminfo", "r"); if(meminfo == NULL) { 返回 0; }
有人知道吗:
- 当有足够的可用大页面可用时,是什么导致分配失败?
- 是什么导致分配额外的 2MB 页面?
- 什么是“段开销”?
java - 为什么我的 Java 应用程序不能在 Red Hat Linux 中处理大页面?
我试过这个简单的命令:
我收到错误:
但是如果没有大页面,它可以正常工作。
内存信息输出: