I hereby claim:
- I am sjenning on github.
- I am sjennings (https://keybase.io/sjennings) on keybase.
- I have a public key whose fingerprint is 6786 EF89 9CFF 4913 F200 2FE2 9622 D5C8 C1AC F915
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| $ curl http://127.0.0.1:8080/apis/catalog/v1/namespaces/default/catalogs | |
| { | |
| "kind": "CatalogList", | |
| "apiVersion": "catalog/v1", | |
| "metadata": { | |
| "selfLink": "/apis/catalog/v1/namespaces/default/catalogs", | |
| "resourceVersion": "31" | |
| }, | |
| "items": [] | |
| } |
Hugepages are a hardware feature designed to reduce pressure on the translation lookaside buffer (TLB) for applications that operate on large contiguous memory regions.
Take a program that operates on a large 2MB internal structure as an example. If the program accesses that space in such a way that one byte in each regular 4k page is accessed, 2M/4k = 512 TLB entries are needed. Each TLB miss at the hardware level requires and interrupt and kernel intervention to resolve. However, if the allocation is backed by a 2M hugepage by mmap()ing with MAP_HUGETLB, only 1 TLB entry is required.
On x86_64, there are two hugepage sizes: 2MB and 1G. 1G hugepages are also called gigantic pages. 1G must be enabled on kernel boot line with hugepagesz=1G. Hugeages, especially 1G ones, should to be allocated early before memory fragments (i.e. at/near boot time) to increase the likelihood that they can be allocated successfully with minimal memory migration (i.e. defreg) required
[OSEv3:children]
masters
nodes
[OSEv3:vars]
ansible_ssh_user=sjennings
ansible_become=yes
deployment_type=origin| manual (fedora 25) | |
| nodes: | |
| gluster-node1 | |
| gluster-node2 | |
| per node: | |
| setenforce 0 | |
| dnf install glusterfs-server | |
| systemctl enable --now glusterd.service |
setenforce 0
vi /etc/selinux/config (change to "permissive")
dnf install wget make gcc git docker bash-completion -y
systemctl enable --now docker
wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz
vi ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
| kind: PersistentVolumeClaim | |
| apiVersion: v1 | |
| metadata: | |
| name: gluster-volume | |
| annotations: | |
| volume.beta.kubernetes.io/storage-class: default | |
| spec: | |
| accessModes: | |
| - ReadWriteOnce | |
| resources: |
| --- | |
| apiVersion: v1 | |
| kind: Secret | |
| metadata: | |
| name: heketi-secret | |
| namespace: default | |
| data: | |
| key: YWRtaW5zZWNyZXQ= | |
| type: kubernetes.io/glusterfs | |
| --- |
| #include <assert.h> | |
| #include <err.h> | |
| #include <errno.h> | |
| #include <fcntl.h> | |
| #include <libgen.h> | |
| #include <limits.h> | |
| #include <stdio.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #include <stdlib.h> |