ΠΊΠ°ΠΊΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ mysql
ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠΊΠΎΠ»ΠΎ 1000. P4 DualCore, 2ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π½Π° PG?
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
ΠΡΠ»ΠΈ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ, Π·Π°ΡΠ΅ΠΌ Π²Π°ΠΌ 1000 ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²? ΠΡΠΎ ΠΏΠΎ 500 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° core.
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
> ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠΊΠΎΠ»ΠΎ 1000. P4 DualCore, 2ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π½Π° PG?
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄ΠΎ Xeon QuardCore 3ΠΠ³Ρ (ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎ 4).
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
40% update + 60% select, Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅, Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΎΡ 10 ΡΡΡ. Π΄ΠΎ 1ΠΌΠ»Π½. Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΡΠ½ΡΠ» Π±ΠΎΠ»Π΅Π΅ 800 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π·Π° ΡΡΡΠΊΠΈ (ΠΎ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ³Π°Π΄ΡΠ²Π°ΡΡΡΡ) Π½Π° 2x Xeon-1800, ΠΎΡΡΠ°Π²Π»ΡΡ Π΅ΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ MMORPG-ΡΠ΅ΡΠ²Π΅ΡΠ°.
Re: ΠΡΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ MySQL
> Π PG Π²ΡΠ΄Π΅ΡΠΆΠΈΡ? Π ΡΡΠΎ PG? ΠΠ°ΡΠΈΠ³.
> ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄ΠΎ Xeon QuardCore 3ΠΠ³Ρ (ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎ 4). ΠΠ΅Π»ΡΠ·Ρ ΡΠ°ΡΡΡΠΆΠ΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΠ Π½Π°Π΄ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Ρ Π½Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π½Π°Π³ΡΡΠ·ΠΊΠ΅
ΠΠ°ΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠ°
ΠΠΈΠΌΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΌΠΌΠ°ΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π² Π΄Π΅Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ:
Π’Π°ΡΠΈΡ | ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° CPU | ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° MySQL |
---|---|---|
Year+ | 50 | 1000 |
Optimo+ | 300 | 5000 |
Century+ | 400 | 7000 |
Millennium+ | 600 | 10000 |
Eterno | 1000 | 15000 |
Premium | 3000 | 25000 |
1Π‘Π°ΠΉΡ | 1000 | 15000 |
Π‘ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ»ΡΠ³ΠΎΠΉ «Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ» Π»ΠΈΠΌΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
ΠΠΈΠΌΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΠΈΠΌΠΈΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ:
110 cp Π½Π° CPU, 2200 Π΅Π΄ΠΈΠ½ΠΈΡ Π½Π° MySQL Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π° ΠΈ ΡΠ°ΡΠΈΡΠΎΠ² «Π‘ΡΠ°ΡΡ» CMS-Ρ ΠΎΡΡΠΈΠ½Π³Π°;
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΠ£
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΡΠ°Π·Π΄Π΅Π» «ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ») ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 2 ΡΠ°ΡΠ° / 24 ΡΠ°ΡΠ° / 30 Π΄Π½Π΅ΠΉ. ΠΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡΠ° ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΆΠ΅Π»ΡΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅ «30 Π΄Π½Π΅ΠΉ»; Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ Π·Π° 2 ΠΈ 24 ΡΠ°ΡΠ° ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΉ Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ (Π΅ΡΠ»ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΡΠΎΡΠ½ΡΠΉ Π»ΠΈΠΌΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ Π±ΡΠ» ΠΏΡΠ΅Π²ΡΡΠ΅Π½ Π·Π° 15 ΠΌΠΈΠ½ΡΡ ΠΈΠ»ΠΈ 1 ΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ).
36 ΠΌΠ»Π½ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ°Ρ, 10000+ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, nginx+mysql
Π‘Π»ΠΎΠΆΠΈΠ»Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ°ΡΡΠ²ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΠ°ΠΊ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π» β 36 ΠΌΠ»Π½ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ°Ρ. Π― ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π» ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΡΡ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ; Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΆΠ°ΡΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ ΡΠ΅Π·ΠΈΡΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ Π² ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. Π§ΠΈΡΠ°ΠΉΡΠ΅ ΠΈΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅, ΡΡΠΎ ΡΠ΅ΡΡ ΠΏΡΠΎ Β«Π²ΡΡΠΎΠΊΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡΒ» Π² 15-20 ΡΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π² ΡΡΡΠΊΠΈ. Π£ Π½Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½, Π°ΠΊΡΠΈΠ²Π½ΡΡ , Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΡ .
Π£ Π½Π°Ρ Π½Π΅Ρ Π΄Π΅Π½Π΅Π³ ΠΈ ΠΌΡ Π²ΡΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ Π·Π° ΡΠ²ΠΎΠΉ ΡΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΌ. ΠΡΠΎΠ³ β Π²Π΅ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π²ΠΎΡ Π½Π° ΡΠ°ΠΊΠΎΠΌ β EX-60 Π½Π° hetzner.
ΠΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ΅Π±Π΅ Π°Π½Π°Π»ΠΎΠ³ DDoS ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ»ΠΎ ΠΏΠΎ 4000 php ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΠ‘ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄ 4000, Ρ ΡΡΠΏΠ΅Π» ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΈ Π½Π°ΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅. Π‘ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π² ΡΠΎΡΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠ»ΠΈΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΈ 10-12 ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ load average: 3,92, 3,22, 2,85. ΠΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΊΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠΈΡΠ°Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½ΠΊΠ° β CentOS 7.1, 64 Π±ΠΈΡΠ°. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ, ΠΏΠ»ΡΡ iptables, nginx, php-fpm, mysql. Π―Π΄ΡΠΎ 4-ΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΈΠ· kernel-ml.
Π’ΡΠ½ΠΈΠ½Π³ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΄ΡΠ° ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°ΠΏΠΎΡ tcp ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΠ²:
Π’ΡΠ½ΠΈΠ½Π³ Π»ΠΈΠΌΠΈΡΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ ΡΠ·Π΅ΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅Ρ, ΡΠΎ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ Π·Π°ΠΌΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ:
ΠΠΎΠ½ΡΡΡΡ Π·Π½Π°ΡΡ, Π½ΠΎ Ρ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π» ΠΈ Π±ΡΠ» Π½Π΅ Π² ΠΊΡΡΡΠ΅, ΡΡΠΎ * Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° root, ΠΈ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΈΠ½Π³ΠΎΠ²Π°ΡΡ.
ΠΠ° ΡΡΠΎΠΌ Ρ ΡΠ΄ΡΠΎΠΌ Π²ΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΡΡΠΊΡΠ»Π°. Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° percona-56.
ΠΡΠ±ΠΎΡ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π² ΠΈΡΠΎΠ³Π΅ Π½Π° InnoDB, ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ TokuDb, Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠΎΠ², Π° ΠΈΡ Ρ Π½Π°Ρ 95% ΠΈΠ· 36 ΠΌΠ»Π½ Π² ΡΠ°Ρ. InnoDB Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π»ΡΡΡΠ΅, ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠΊΠΎΠ½Ρ Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ ΡΠΎΠΌ ΠΆΠ΅.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ query-cache. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΏΠΎΠΈΠ³ΡΠ°ΠΉΡΠ΅ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Ρ, Π½ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ Π²ΡΡΡΠ΅ΡΠ°Π» ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» Ρ ΡΠ΅Π±Ρ β ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ, Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅.
skip-name-resolve ΡΠΎΠΆΠ΅ Π΄Π°Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΡΠΎΡΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π΄Π»Ρ nginx:
nginx ΡΡΠ½ΠΈΠΌ ΠΏΠΎΠ΄ Π½Π°ΡΠΈ Π½ΡΠΆΠ΄Ρ:
user nginx;
worker_processes 8;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events <
worker_connections 8000;
multi_accept on;
use epoll;
>
http <
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log main;
gzip off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
reset_timedout_connection on;
server_tokens off;
client_body_buffer_size 128k;
Π―Π΄Π΅Ρ 8, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ worker-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² 8, ΠΏΠΎ 8000 Π½Π° Π±ΡΠ°ΡΠ°, Π²ΡΠ΅-ΡΠ°Π²Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ 64ΠΊ Π½Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΡΡ Π·Π° ΡΠ°Π·. ΠΡΠ΄Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΠ².
Π ΡΠ°ΠΉΡΠ΅ Ρ php-fpm ΠΎΠ±ΡΠ°Π΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅ΡΡ:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ php-fpm:
ondemand ΠΌΠ°Π»ΠΎ Π³Π΄Π΅ ΠΎΠΏΠΈΡΠ°Π½, Π½ΠΎ ΠΎΠ½ Π»ΡΡΡΠ΅ ΡΠ΅ΠΌ dynamic ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. Π static β ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ±ΠΈΠΉΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΡΠΈΠ»ΡΠ½ΠΎ.
ondemand Π½Π°ΡΠΈΠ½Π°Π΅Ρ Ρ 5, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ dynamic Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ ΠΎΠΏΡΡΡ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ, Π° ΠΏΡΠΎΡΡΠΎ Π½Π° ΠΏΠΈΠΊΠ΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΡΡΡ ΡΠ°ΡΡΠ΅Ρ β ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²Ρ, Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ρ Π½ΡΠ»Ρ.
pm.max_requests = 0 ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±ΠΎΡΠΎΡΡΡ Ρ ΡΡΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌ ΡΠΎΡΡΠ΅.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΊ ΠΌΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌ 36 ΠΌΠ»Π½ Π² ΡΠ°Ρ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 95 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊ Π½Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΈΡ Π² ΠΠ. ΠΠ° 2.8 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡ 10 Π΄ΠΎ 16 slow_query, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ 10 ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΡΠ΅ ΠΎΠ½ΠΈ β ΡΠ΅Π»Π΅ΠΊΡΡ Ρ Π΄ΠΆΠΎΠΉΠ½Π°ΠΌΠΈ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ.
ΠΠΌΠ΅ΡΡΠΎ php-fpm ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» hhvm ΠΎΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΠΊΠ°ΡΠ½ΠΎ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ php-fpm, Π½ΠΎ Π΅ΡΡΡ Π±Π΅Π΄Π° β ΠΊΠ°ΠΆΠ΄ΡΠ΅ 30-40 ΠΌΠΈΠ½ΡΡ ΠΏΠ°Π΄Π°Π΅Ρ, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π°Π³Π»ΡΡ ΠΎ.
Π git ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°ΠΏΠΈΡΠ°Π», ΠΏΠΎΠΊΠ° Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΌΠΎΡΡ, ΠΏΡΠΈΡΠΈΠ½ Π½Π΅ Π·Π½Π°ΡΡ. Π ΠΈΡΠΎΠ³Π΅ ΡΠΈΠ΄ΠΈΠΌ Π½Π° php-fpm, Π²Π΅ΡΡΠΈΡ 5.6.
ΠΠ΅ΡΡ ΡΠΎΡΡ ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· yum, Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ Π±ΠΈΠ»Π΄ΠΎΠ² Ρ ΡΠΎΡΡΠΎΠ² Ρ ΠΌΠ΅Π³Π°ΡΡΠ½ΠΈΠ½Π³ΠΎΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
ΠΡΠΌΠ°Ρ, ΠΊΠΎΠΌΡ-ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π²ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ: ΠΌΠΈΡΠ½Π°Ρ Π±ΠΈΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ PostgreSQL ΠΈ MySQL ΠΏΡΠΈ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠΈΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌ
ΠΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, ΡΡΠΎ Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ PG Dayβ17 Russia Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΠ»Π°ΡΡ. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Percona ΠΌΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎ MySQL/NoSQL. ΠΠΎΠΌΠΈΠΌΠΎ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² ΠΎΡ Π²Π΅Π΄ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΏΠΎ ΠΎΡΠΊΡΡΡΡΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ no sql ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ 2 ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΡ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° ΠΎΡ Π²Π΅Π΄ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Percona β ΠΠ΅ΡΡΠ° ΠΠ°ΠΉΡΠ΅Π²Π° ΠΈ Π‘Π²Π΅ΡΡ Π‘ΠΌΠΈΡΠ½ΠΎΠ²ΠΎΠΉ.
ΠΠ° ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ°Ρ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ ΠΏΠΎ Π±Π°Π·Π°ΠΌ MySQL: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ±ΠΎΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π‘Π²Π΅ΡΠ° Π‘ΠΌΠΈΡΠ½ΠΎΠ²Π° β ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΡΠ»ΡΠΆΠ±Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Percona ΠΈ ΠΠ½Π°ΡΡΠ°ΡΠΈΡ Π Π°ΡΠΏΠΎΠΏΠΈΠ½Π°, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³Ρ, ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ PostgreSQL ΠΈ MySQL ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
5-Π³ΠΎ ΠΈΡΠ»Ρ Π΄Π»Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² PG Dayβ17 Π‘Π²Π΅ΡΠ»Π°Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΠΏΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MySQL ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ, ΡΠ°Π±Π»ΠΈΡΠ½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ, ΡΠΈΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
ΠΠ½Π°ΡΡΠ°ΡΠΈΡ: ΠΠΎΠ³ΡΡ Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ? ΠΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°ΡΠΈΡΠ½ΠΈΠΊΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡΠ²Π΅ΡΡΡ Β«Π΄Π°Β». ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ². ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π΄Π΅Π»ΠΈΠΌΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΎΡ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° ΠΠΎΡΠΎΡΠΊΠΎΠ²Π° (Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠ° ΠΎΡΠ΄Π΅Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Postgres Professional) ΠΈ Π‘Π²Π΅ΡΡ Π‘ΠΌΠΈΡΠ½ΠΎΠ²ΠΎΠΉ (Π³Π»Π°Π²Π½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Percona). Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ PostgreSQL 9.6 ΠΈ MySQL 5.7 Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΡΡΠ΅Π΄ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ΅ΡΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π‘Π£ΠΠ. Π‘Π²Π΅ΡΠ° ΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ MySQL ΠΈ PostgreSQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ PostgreSQL ΠΈ MySQL ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (pgbench and SysBench), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΠΏΡΠΎΡΡΠΎ.
ΠΠ°Π΄Π°ΡΠ° Π»Π΅Π³Π»Π° Π½Π° ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² ΠΏΠΎ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ. Π‘Π²Π΅ΡΠ° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° ΠΏΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ MySQL Π² Oracle Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΡΡΠΌΠΈ Ρ Π»ΠΈΡΠ½ΠΈΠΌ Π»Π΅Ρ, Π° Ρ 2015 Π³ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π³Π»Π°Π²Π½ΡΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ ΠΏΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Percona. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠΎΡΠΎΡΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² PostgreSQL ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΡΡΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ PostgreSQL, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ CREATE ACCESS METHOD, ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ WAL, Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Pin/UnpinBuffer, ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΡΠ°ΠΊ, Ρ Π½Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π»ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠΉ Π°ΠΊΡΠ΅ΡΡΠΊΠΈΠΉ ΡΠΎΡΡΠ°Π² Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠ΅ΡΡ!
Π‘Π²Π΅ΡΠ°: ΠΠΌΠΈΡΡΠΈΠΉ ΠΡΠ°Π²ΡΡΠΊ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ MySQL, ΡΠ°ΠΊ ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ»Π° Π½Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΡΡΠΎ MySQL ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π°ΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π»ΠΈ ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ. ΠΡΠ΄ΡΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Ρ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌΠΈ Π² Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π·Π°Π΄Π°Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² Π΄ΡΡΠ³ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π±ΡΠ»Π° ΡΠ°Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Postgres Professional ΠΈ Π²ΡΡΠ²ΠΈΡΡ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΈΡ Π΄Π²ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ΅ΡΡΡ. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ.
Π‘ΠΏΠΎΠΉΠ»Π΅Ρ: ΠΡ ΠΏΠΎΠΊΠ° Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΡΠΎ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ.
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ
Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
, ΡΠ΅ΡΠΈΡ 1: Β«ΠΡΠΎ Π±ΡΠ»ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎβ¦Β»
Postgres Professional Π²ΠΌΠ΅ΡΡΠ΅ Ρ Freematiq ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² Π΄Π²Π΅ ΠΌΠΎΡΠ½ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ: ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ = 4, ΡΠ΄ΡΠ° = 72, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ = 144, hyperthreading = Π΄Π°
ΠΠ°ΠΌΡΡΡ: 3 TB
Π‘ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΠΊΠ°: ΠΎΠΊΠΎΠ»ΠΎ 3K IOPS
ΠΠ‘: CentOS 7.1.1503
Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°: XFS
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Percona.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ:
ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ: ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ = 2, ΡΠ΄ΡΠ° = 12, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ = 24, hyperthreading = Π΄Π°
ΠΠ°ΠΌΡΡΡ: 251.9 GB
Π‘ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΠΊΠ°: ΠΎΠΊΠΎΠ»ΠΎ 33K IOPS
ΠΠ‘: Ubuntu 14.04.5 LTS
Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°: EXT4
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠ°ΡΠΈΠ½Ρ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ
ΡΠ΄Π΅Ρ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΌΠΈ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΉ MySQL, ΡΠ΅ΠΌ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΄Π΅Ρ.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°ΡΡ, β ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π‘ΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ PostgreSQL Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ β pgbench, Π° Π΄Π»Ρ MySQL β SysBench. SysBench ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Lua, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ ΡΠΎΡΡΠΎΡΠ» Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡ pgbench Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ SysBench Π½Π° Lua, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠ»ΡΡΠΈΠ² ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π°ΡΠΈ ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ MySQL ΠΈ PostgreSQL.
Π― ΡΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π»Π° ΡΠ΅ΡΡΡ pgbench Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ SysBench ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»Π° ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ open-database-bench Π½Π° GitHub.
Π ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±Π° ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»Π°, Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ»Π° ΡΠ΅ΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Percona. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ»ΠΈ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ:
Π― Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ, Π² ΡΡΠΌ ΠΌΠ°ΡΠΈΠ½Π° Percona ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΠ»Π° Freematiq, Π±ΡΠ»Π° ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ read-only ΡΠ΅ΡΡ pgbench, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ point select ΡΠ΅ΡΡΡ SysBench Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· SysBench ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» 50% Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² CPU:
Π£ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ°, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ SysBench, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠ³ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΡΠΎΠΊΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° PostgreSQL ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ prepared statements:
ΠΡ ΡΠ²ΡΠ·Π°Π»ΠΈΡΡ Ρ Π°Π²ΡΠΎΡΠΎΠΌ SysBench ΠΠ»Π΅ΠΊΡΠ΅Π΅ΠΌ ΠΠΎΠΏΡΡΠΎΠ²ΡΠΌ, ΠΈ ΠΎΠ½ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ MySQL:
β’ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ SysBench Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ —percentile=0 ΠΈ —max-requests=0 (ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CPU);
β’ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π΅ΡΠ²Ρ concurrency_kit (Π»ΡΡΡΠΈΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Lua);
β’ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Lua Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ prepared statements (pull request: github.com/akopytov/sysbench/pull/94);
β’ Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΊΠ°ΠΊ SysBench, ΡΠ°ΠΊ ΠΈ mysqld Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ jemalloc ΠΈΠ»ΠΈ tmalloc.
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ PostgreSQL ΡΠΆΠ΅ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ΅ΡΡ SysBench Π² ΡΠΎΡΠΌΠ°Ρ pgbench, ΠΈ Π½Π° ΡΡΠΎΠΌ ΠΌΡ Π·Π°ΡΡΠΎΠΏΠΎΡΠΈΠ»ΠΈΡΡ. ΠΠ΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π»Ρ MySQL, Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Ρ Π½Π°Ρ Π±ΡΠ»Π° ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»Π°ΡΡ, β ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎ, ΡΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΡ Π½Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ (ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΠΆΠ΅):
ΠΡΠΈ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±ΡΠ»ΠΈ Π»ΡΡΡΠ΅ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ PostgreSQL. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π½Π°ΡΡΡΠΎΠΈΠ» ΡΠ²ΠΎΡ ΠΌΠ°ΡΠΈΠ½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
β’ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (ΠΏΠΎΠΊΠ°);
β’ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ΅ΡΡ Π΄Π»Ρ pgbench, ΠΈΠΌΠΈΡΠΈΡΡΡΡΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ SysBench;
β’ ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
ΠΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠΌ, ΠΌΡ Π·Π°ΡΡΡΡΠ»ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ΅ΡΡΠ°Ρ SysBench. Π― ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»Π° ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ prepared statements, Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π» ΠΈΡ Π² ΡΠΎΡΠΌΠ°Ρ pgbench.
Π‘ΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Ρ Π½Π΅ ΡΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠ°ΠΊ Ρ ΠΠΌΠΈΡΡΠΈΡ, Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² Read Only ΠΈ Point Select. ΠΠ½ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ»ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ Π½Π°Π²ΡΠΊΠΎΠ² Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΠΌΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΎΠ² Read-Write ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ PostgreSQL ΠΈ MySQL Π±ΡΠ»ΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅. Π£ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ MySQL ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ max_connections Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΄ΠΎ ΡΡΡΡΡ Π½Π΅ ΡΠ΅Π΄ΠΊΠΎΡΡΡ Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ. Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, Π»ΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠ»Π°Π³ΠΈΠ½Π° thread pool. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π½Π΅Π°ΠΊΡΠΈΠ²Π½Ρ. ΠΠΎ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠ°Π½Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠΊΠ°ΠΆΡΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
ΠΠ»Ρ MySQL Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»Π° ΡΠ΅ΡΡΡ Π΄ΠΎ 1024 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΄Π΅Ρ: 1, 2, 4, 8, 16, 32, 36, 64, 72, 128, 144, 256, 512 ΠΈ 1024 ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ»Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° Π±ΡΠ»ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ. ΠΠ½ Π½Π°ΡΠ°Π» Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π» Π½Π° 10 ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³ 250 ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ Π΄Π»Ρ PostgreSQL, Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ 250 ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π΅Ρ.
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
pgsql-9.6 β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ PostgreSQL
pgsql-9.6 + pgxact-align β PostgreSQL Ρ ΡΡΠΈΠΌ ΠΏΠ°ΡΡΠ΅ΠΌ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅)
MySQL-5.7 Dimitri β ΡΠ΅ΡΠ²Π΅Ρ Oracle MySQL
MySQL-5.7 Sveta β ΡΠ΅ΡΠ²Π΅Ρ Percona 5.7.15
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (sync commit) Π² PostgreSQL Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° innodb_flush_log_at_trx_commit=1 Π² InnoDB, Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ innodb_flush_log_at_trx_commit=2.
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈ: ΠΎΠ±Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΠΈ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ MySQL, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ 1024 ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ.
Point SELECT ΠΈ OLTP RO
OLTP RW Ρ innodb_flush_log_at_trx_commit, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π½Π° 1 ΠΈ 2
ΠΠΎΠ»ΡΡΠΈΠ² ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΌΡ ΠΏΡΠΎΠ²Π΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡΡ .
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΠΏΡΠΈΠΈ MySQL Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² OLTP RO ΠΈ Point SELECT:
ΠΠΏΡΠΈΠΈ MySQL Π΄Π»Ρ OLTP RW:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ MySQL SysBench:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ PostgreSQL pgbench:
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° Π‘Π²Π΅ΡΡ Π½Π° PG Day’17. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΎΠΌΡ, ΠΎ ΠΊΠ°ΠΊΠΈΡ Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ PostgreSQL ΠΈ MySQL Π²Ρ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΌ Π²Π°ΡΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ!
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ MySQL
Π ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ mysql. ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ MySQL
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½Π°. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΉΡΠ°Ρ, Π΅ΡΡΡ Π»ΠΈ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° mysql Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/my.cnf. Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² my.cnf, Π² ΡΠ΅ΠΊΡΠΈΡ [mysqld]:
ΠΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ. ΠΠ°Π»ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π»ΠΎΠ³:
systemctl restart mariadb
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ 10 ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΏΡΠΎΡ
SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes’;
ΠΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ mysql:
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ MySQL
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ MySQL Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ, Π½ΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π² Π½Π΅Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ. ΠΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ MySQLTunner, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ MySQL ΠΈ Π΄Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π‘ΠΊΡΠΈΠΏΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠΉ MariaDB, MySQL ΠΈ Percona XtraDB. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ wget:
ΠΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ ΡΠΊΡΠΈΠΏΡ Π²ΡΠ΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ MySQL. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Π±ΡΡΠ΅ΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π² ΡΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° Π΄Π²ΠΈΠΆΠΊΠ° ΡΠ°Π±Π»ΠΈΡ InnoDB (InnoDB buffer pool) Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ , Π° Π½Π΅ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² /etc/my.cnf. ΠΡΠ΅ ΡΠ°Π· Π·Π°ΠΌΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡΡ, Π° ΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΎ Π²Π°ΠΌ Π²ΡΠ΄Π°Π»Π° ΡΡΠΈΠ»ΠΈΡΠ°. ΠΠ°ΡΠ½Π΅ΠΌ Ρ query-cache.
query_cache_size=0
query_cache_type=0
query_cache_limit=1M
ΠΠ±Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ MySQL. Π£ΡΠΈΠ»ΠΈΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ 16 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ, ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ Π²Π°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ 32 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 64. ΠΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅.
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π΅ ΡΠ°Π·ΠΎΡΠ²Π΅Ρ Π΅Π³ΠΎ, Π° Π·Π°ΠΊΡΡΠΈΡΡΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. Π£ΡΠΈΠ»ΠΈΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΡΠ΅Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 16.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ·Π²Π½Π΅. Π£ΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΠ°ΡΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° DNS Π·Π°ΠΏΡΠΎΡΡ.
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° InnoDB Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΡΡ Π² Π½ΠΈΡ . ΠΡΠ»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π·Π°ΠΏΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅. Π£ ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ 128, Π° Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ 652.
Π Π°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π»ΠΎΠ³Π° innodb Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ 25% ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΡΡΠ΅ΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ 800 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ 200Π. ΠΠΎ ΡΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π»ΠΎΠ³Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π»ΠΎΠ³Π° Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ:
systemctl stop mariadb
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠ³Π° Π² /tmp:
mv /var/lib/mysql/ib_logfile[01] /tmp
Π Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ:
systemctl start mariadb
ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅Ρ Π»ΠΎΠ³Π° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π²ΠΈΠ΄ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π½ΡΠΉ Π»ΠΎΠ³, Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠ°ΡΡΠΉ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅ΡΡΡ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ :
systemctl status mariadb
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
ΠΠΎΡΠΎΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ mysql Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡ ΠΆΠ΅ Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΠΈΠ΅Π½Ρ mysql:
> USE Π±Π°Π·Π°_Π΄Π°Π½Π½ΡΡ
;
> SELECT option_name, option_value FROM wpfc_options WHERE autoload = ‘yes’;
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠ»Π³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Ρ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Ρ Π±ΠΎΠ»Π΅Π΅ 3 ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ 0,15. Π Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΠ· slow-log, ΡΠΎ ΠΎΡ Π±ΠΎΠ»Π΅Π΅ 12. ΠΡΠ»ΠΈ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ Π²Π°Ρ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ ΠΈΡ ΡΠΎΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ mysql ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΌΡ ΡΠΊΡΠΈΠΏΡΡ, Π½ΠΎ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ. ΠΡΠ΅ Π»ΡΡΡΠ΅ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² mysql. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΡΡΠΎ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠΏΡΠ°ΡΠΈΠ²Π°ΠΉΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !
ΠΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π»Π΅ΠΊΡΠΈΡ ΠΏΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ MySQL ΠΎΡ Percona: