Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 >

lundi 8 juin 2009

[PostgreSQL 8.3] Valeur la plus basse pour shared_buffers pour lancer un serveur

Sans tenir compte du shmmax pour lequel j'ai

postgres@olivia:~$ cat /proc/sys/kernel/shmmax
33554432

Soit shmmax = 33554432 bytes.

Ayant 1 kB = 1024 bytes et 1 MB = 1024kB, j'ai donc shmmax = 33554432/(1024*1024)= 32 MB.

Je suis loin de dépasser ce seuil. D'après la documentation:

D'après http://docs.postgresqlfr.org/8.3/kernel-resources.html, on a donc

PostgreSQL™ utilise un sémaphore par connexion autorisée (max_connections) et par processus autovacuum autorisé (autovacuum_max_workers), le tout par ensemble de 16.

Donc shared_buffers >= (max_connections+autovacuum_max_workers) * 16 kB Comme chez moi autovacuum_max_workers = 3, on aura donc si je mets pour max_connections = 11 donc shared_buffers>=14*16=224

Faisons quelques tentaives:

  1. shared_buffers = 223kB
    postgres@olivia:~$ pg_ctl restart -o "-i -p 5441" -D disk1
    pg_ctl: PID file "disk1/postmaster.pid" does not exist
    Is server running?
    starting server anyway
    postgres: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16
    server starting
    postgres@olivia:~$ pg_ctl status -o "-i -p 5441" -D disk1
    pg_ctl: no server running
    
    Le serveur ne démarre pas!!!
  2. shared_buffers = 224kB
    postgres@olivia:~$ pg_ctl restart -o "-i -p 5441" -D disk1
    pg_ctl: PID file "disk1/postmaster.pid" does not exist
    Is server running?
    starting server anyway
    server starting
    postgres@olivia:~$ LOG:  database system was shut down at 2009-06-08 23:43:29 CEST
    LOG:  database system is ready to accept connections
    LOG:  autovacuum launcher started
    
    postgres@olivia:~$ pg_ctl status -o "-i -p 5441" -D disk1
    pg_ctl: server is running (PID: 16182)
    /opt/pgsql/bin/postgres "-i" "-p" "5441"
    
    Le serveur démarre

dimanche 7 juin 2009

[PostgreSQL 8.3] Relecture des articles de Guillaume Lelarge (Dalibo.org)

Je viens de passer ces derniers jours ainsi que ma soirée de samedi à relire les articles de Guillaume Lelarge - Dalibo.org - sur les divers points de PostgreSQL 8.3

Rien de compliqué en soi mais le cerveau était un peu fatigué ce soir avec tous ces informations qui ont commencées à fuser à gauche et à droite dans mon cerveau: WAL, HOT,VACUUM, wal_buffers etc... Résultat des courses: un petit efferalgan avant d'aller me coucher car trop d'informations dans le cerveau - puisque j'ai une mémoire de poisson rouge à ce qu'il paraît -. Disons que ce soir mon cerveau est en mode VACUUM FULL ...J'aurais quand même appris des choses intéressantes

En tout cas ça m'aura fait du bien de revoir mes acquis que je n'avais pas réactiver depuis plusieurs mois. Merci à toi Guillaume pour la qualité de tes articles. Comme toujours avec toi en dehors de tes qualités de pédagogue, il faut relire tes articles en entier pour trouver la petite phrase ou le paragraphe qui va faire mouche et qui vaudra son pesant d'or ou éguiser ma curiosité...

Liste des articles: http://www.dalibo.org/articles

Je n'ai pas encore exploré les possibilités de la 8.4. Elle est encore en beta pour le moment et n'est prévue que pour cet été/automne 2009

samedi 6 juin 2009

[PostgreSQL 8.3] Remonter dans les logs les requêtes qui se soldent par une erreur

Pendant mes investigations sur la version 8.3, il suffit d'avoir

postgres=# show log_min_error_statement;
 log_min_error_statement 
-------------------------
 error
(1 row)

postgres=# show log_min_messages ;
 log_min_messages 
------------------
 notice
(1 row)

Ces deux paramètres sont à modifier dans le fichier de configuration de PostgreSQL. Au lieu de procéder à un redémarrage du serveur, l'appel à pg_reload_conf() (="SELECT pg_reload_conf()") suffit à prendre en considération les précédentes modifications.

mardi 2 juin 2009

Script rapide pour les conversions en h264/aac

Petit script maison rapide pour les conversions en mp4

# mise à jour des variables d'environnement

export LD_LIBRARY_PATH=/opt/ffmpeg-0.5/lib/:$LD_LIBRARY_PATH

export PATH=/opt/ffmpeg-0.5/bin/:$PATH

# gestion des arguments

INPUT_FILE="$1";

# fichier d'entree existe?

[ ! -f "${INPUT_FILE}" ] && { echo "fichier '${INPUT_FILE}' n'existe pas";exit 1;}

# pour le nom: on remplace tout ce qui n'est pas alphanumerique par '_'
#
TR_FILE=`basename "${INPUT_FILE}"`;
TRF_FILE=`echo "${TR_FILE%.*}"| tr -c "[:alnum:]" "_" `;

# nom du film
OUTPUT_MOVIE_FILE="/???/???/${TRF_FILE%_*}.mp4";
echo "[output_movie] => '${OUTPUT_MOVIE_FILE}'"
# nom de l'imagette
OUTPUT_IMG_FILE="/???/???/${TRF_FILE%_*}.png";
echo "[output_image] => '${OUTPUT_IMG_FILE}'";

#conversion
ffmpeg -y -i "${INPUT_FILE}" -vcodec libx264 -vpre normal -b 350k -qmin 10 -qmax 50 "${OUTPUT_MOVIE_FILE}" || exit 1;

# imagette
ffmpeg -y -i "${OUTPUT_MOVIE_FILE}" -an -ss 00:01:35  -r 1 -vframes 1  -f mjpeg -vhook '/opt/ffmpeg-0.5/lib/vhook/imlib2.so \
-x W/2-52  -y H/2-20  -i /root/play_text.png' "${OUTPUT_IMG_FILE}"