Download - Rendimiento del sistema Tryton
![Page 1: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/1.jpg)
Rendimiento en Tryton
![Page 2: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/2.jpg)
1/Programación
![Page 3: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/3.jpg)
1.1/Operaciones en batch: create()
● Listas de registros:
@classmethoddef create(cls, vlist):
pass
![Page 4: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/4.jpg)
1.2/Operaciones en batch: create()
parties = []
for x in xrange(1000): party = Party() Party.code = random()
Party.create([x._save_values for x in parties])
o
Party.save(parties)
![Page 5: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/5.jpg)
1.3/Operaciones en batch: save()
for party in parties:party.code = random()party.save()
for party in parties:party.code = random()
Party.save(parties)
![Page 6: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/6.jpg)
1.4/Cache
● Pre-carga de 2000 registros (configurable)● Anti-patrón: acceso aleatorio a los datos cargados
mediante search/browse
Party = Pool().get('party.party')parties = Party.search([])for party in parties:
for address in party.addresses:pass
![Page 7: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/7.jpg)
1.4/Adjuntos
● Problema con python a nivel de comunicación. Introducido workaround en Tryton. Muy lento para ficheros de algunos MB
● Se guardan en el sistema de ficheros
![Page 8: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/8.jpg)
1.5/Campos funcionales
● Trabajar en batch si no se puede hacer uso de la cache:
@classmethoddef get_value(cls, names, records):
pass
def get_value(self):pass
![Page 9: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/9.jpg)
2/Procesos
![Page 10: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/10.jpg)
2.1/Múltiples procesos
● Reverse proxy con NGINX o bien WSGI a partir de la 4.0● Cron integrado: lanzado en un proceso independiente del
que recibe las peticiones RPC● celery_tryton● Jasper server
![Page 11: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/11.jpg)
3/PostgreSQL
![Page 12: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/12.jpg)
3.1/PostgreSQL
● MVCC● Isolation Level: Repeatable read – No serializable● Actualizar versiones: 9.4 vs 9.5 24s vs 18→
![Page 13: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/13.jpg)
3.2/Fichero de configuración
● Fichero de configuración● shared_buffers● work_mem● maintenance_work_mem● asynchronous_commit● fsync ¡¡On!!→● ¿¿ huge_pages ??
![Page 14: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/14.jpg)
4/Sistema
![Page 15: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/15.jpg)
4.1/Soft & hard
● PyPy vs cPython● Pyhon no libera memoria una vez consumida● Un proceso python podemos esperar que consuma entre
400MB y 1GB – si excede debería ser un problema● SSD está muy bien, ¿lo necesitas?
![Page 16: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/16.jpg)
5/Futuro
![Page 17: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/17.jpg)
● PosgreSQL 9.6 – varios procesos para ejecutar una consulta – excelente escalabilidad hasta 4 procesos
● Mecanismo estándar para guardar binarios en el sistema de ficheros
● Desaparición de los Properties● ¿Ejecución asíncrona de consultas SQL?● ¿Utilizar C en python-sql?● Mejorar gestión de las jerarquías – Adjancency list
5.1/Futuro
![Page 19: Rendimiento del sistema Tryton](https://reader036.vdocuments.mx/reader036/viewer/2022062316/5888303a1a28ab733a8b6915/html5/thumbnails/19.jpg)