Tout est dans le titre.
Comment définir la taille des blocs de vos partitions EXT4.
je cite :
Si vous utilisez la plupart du temps de gros fichiers, il sera probablement très profitable de formatter vos partitions avec des blocs de taille plus importante. En effet, Linux utilise par défaut des taille de blocs de 1024 octets. Vous pouvez changer avec des tailles de 4096 avec la commande mke2fs -b 4096 /dev/..., qui utilise des blocs de 4k au lieu de 1k. Cela va notamment réduire la fragmentation et réduire le temps de vérification lors d'un fsck.
Le lien propose toute une tripoté d'autres optimisations.
Un tuto d'optimisation des lectures écriture d'un OS installé sur clef usb
Tout plein de trucs & astuces sur Linux d'une manière générale. Je copie-colle la table des matières ci-dessous :
- Trucs Administration systeme (2 C, 49 P)
Trucs Android (3 P)
Trucs Au secours (18 P)
Trucs Documentation (9 P)
Trucs Développement (6 P)
* Trucs Installation (30 P)
Trucs Logiciels (3 C, 23 P)
Trucs Matériel (6 C, 43 P)
Trucs Noyau (1 C, 11 P)
Trucs Réseau (3 C, 39 P)
Trucs Sécurité (1 C, 6 P)
** Trucs X Window (43 P)
Un tuto sur iptables par l'exemple
Le cloud sous Linux qui se couple super bien avec Docker : OpenStack.
Un superbe tuto également. (Ce post ainsi que son précédent sont pour toi Animal)
Dockeriser (ie. conteneuriser) sa première application (et juste l'application, pas de conteneurisation d'un OS).
Merci à Lea-Linux encore une fois.
Ci-dessous se trouve mon /etc/fstab
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdc1 during installation
UUID=0b59763b-4454-4705-aa57-761039f56cb0 / ext4 errors=remount-ro,discard,noatime,nodiratime 0 1
## Fichier tmp dans la RAM
tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
## Pour les logs
tmpfs /var/log tmpfs defaults,noatime,nodiratime,mode=0755 0 0
Tout htop expliqué. Pour toi Animal, via je ne sais plus quel shaarli
Supprimer la journalisation de ext4.
Les commandes à exécuter sur des partitions non montées (donc depuis une clef usb bootable par exemple) :
sudo tune2fs -O^has_journal /dev/sda3
sudo e2fsck -f -v -C0 /dev/sda3
Attention, désactiver la journalisation augmentera énormément les performances ainsi que la durée de vie de votre disque SSD. Mais en cas de coupure de courant, vous risquez une totale des données qui étaient en cours d'écriture.
Donc oui pour de la bureautique mais jamais ô grand jamais pour un serveur.
UNE VARIANTE ============================ CELA SIGNIFIE PAS LES DEUX EN MÊME TEMPS !
Une variante consiste à utiliser un autre mode de journalisation (par défaut il y en a trois). Cela se passe dans la fstab :
/dev/sda2 / ext4 noatime,defaults,data=writeback 0 1
Il faut ajouter l'option data=writeback et redémarrer.
Quand vous faites un HTOP, vous voyez souvent la consommation de NetBeans dépasser les 16Go de mémoire alors que votre système en a moins que ça. Cela est du à la GLIBC et sa manière de gérer la pagination avec les applications multi-thread.
En gros le calcul est le suivant :
Seuil mémoire de la JVM x taille d'un long sur votre architecture x nb coeurs...
- De base une JVM est à 64 Mo et en général 512 Mo pour NetBeans
- La taille d'un long sur un processeur 64 bits c'est 8 octets
- Le nombre de coeur, ici 8.
ME concernant la mémoire virtuel est donc à 512 Mo x 8 x 8 = 32768 Go... Voilà voilà.
Alors pour corriger le tire est améliorer A MORT ses perfs il faut ajouter dans votre fichier .profile :
export MALLOC_ARENA_MAX=4
N.B : où dans le script qui lance netbeans ça marche aussi si vous en avez un.
Cela va diviser la mémoire virtuel en général par 2 voir par 4. On dit merci qui ?
Vous tapez cp_p source destination
Le script à ajouter dans le bash.rc
#!/bin/sh
cp_p()
{
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
| awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}
Pimper son Linux avec tout un tas d'optimisation sympa. Il faudra que je tienne une liste résumant tout ceci un jour (ou un script).
Comment supprimer l'écriture de log du kernel sous linux (pratique pour les OS sur clefs USB).
En résumé pour System V :
/etc/init.d/syslogd stop
Pour UpStart :
sudo service rsyslog stop
sudo systemctl disable syslog
sudo systemctl disable rsyslog
Découper un fichier sous linux :
# Découpe le fichier "mon_gros_fichier" en petit de 1,44 Mo :
split -b 1440k mon_gros_fichier
Le recomposer :
# Fusionne (append) les fichiers dans leur ordre de déclaration (de gauche à droite)
cat xaa xab xac > mon_gros_fichier
Des optimisations à faire pour les disques SSD sur lesquels tournent linux. Les améliorations sont classiques : durée de vie, performance, consommation, etc
En gros :
1) Créer un répertoire ~/.fonts
2) Y copier vos fichier TTF
3) Exécuter les commandes
-
sudo fc-cache -f -v # (pour l'OS)
-
fc-cache -f -v # (pour vous, sinon c'est redémarrage)
Rappel : BitLocker = outil Microsoft pour chiffrer une partition NTFS.
Il vous faudra au préalable :
1) La "BitLocker Recovery Key" de votre partition (Dislocker n'est pas un outil de hacking)
2) Avoir installé Dislocker
- sudo add-apt-repository ppa:hermlnx/dislocker
- sudo aptitude update
- sudo aptitude install dislocker
Et la command à taper pour un disque chiffré sur /dev/sda2 :
Créer le répertorie qui accueillera le descripteur de la partition BitLocker
mkdir -p /media/Drive1/
Créer le répertoire qui accueillera le point de montage de la partition BitLocker
mkdir -p /media/Mount1/
Générer le descripteur
dislocker -r -V /dev/sda2 -p -- /media/Drive1/
Monter la partition
mount -o loop /media/Driver1/dislocker-file /media/Mount1
Edit : j'ai ajouté le exit 1
qui manquait et simplifier le check, merci Animal.
Le petit script qui va bien à mettre dans votre PATH.
#!/usr/bin/env bash
## USAGE EXAMPLE : create_disk 1000 "/path/to/an/empty/folder"
## Ceci va créer un disk virtuel de 1000 Mo accessible depuis le répertoire "/path/to/an/empty/folder"
## Ne me remerciez pas
display_command_usage() {
echo "Command usage : 'create_in_memory_disk <SIZE> <PATH>'"
echo " - SIZE : The size (in Mo) of the disk to create in memory"
echo " - PATH : The folder where to create the virtual disk"
exit 1
}
if [ "$1" == "" ] || [ "$2" == "" ]; then
display_command_usage
fi
memSize="$1"
diskPath="$2"
sudo mount -t tmpfs -o size=${memSize}m tmpfs $diskPath
#!/bin/bash
## Find screen port (LVDS1, eDP1, etc.) execute 'xrandr --dryrun' and choose the connected one.
#xrandr --output LVDS1 --brightness $*
xrandr --output eDP1 --brightness $*