Nginx + php-fpm + mongoDB (+ mongodb php-lib)
пытается сравнить степень сжатия mongoDB
но результаты не такие, как ожидалось.
Вот мои эксперименты.
/etc/mongod.conf
# mongod.conf //default setting
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Настройка сжатия при создании коллекции в оболочке mongoDB
mongoDB shell> db.createCollection ("test", {storageEngine: {wiredTiger: {configString: 'block_compressor = none, prefix_compression = false'}}})
Всего вариантов сжатия установлено на 6
block_compressor = нет или snappy или zlib // prefix_compression = false или true
При проверке с помощью db.printCollectionStats () параметры были применены правильно.
размер данных вставки составляет 100 КБ * 100000 = около 9 ГБ.
но результат db.test.storageSize ().
block_compression none = 10653536256 (байт)
block_compression snappy = 10653405184 (байт)
block_compression zlib = 6690177024 (байт)
zlib сжат примерно на 40% по сравнению с отсутствием.
но ни один и мгновенный не отличаются.
(prefix_compress также не изменяется.)
Какие настройки я должен добавить?
+ UPDATE
мгновенным + ложь
"compression" : {
"compressed pages read" : 0,
"compressed pages written" : 0,
"page written failed to compress" : 100007,
"page written was too small to compress" : 1025
}
Zlib + ложь
"compression" : {
"compressed pages read" : 0,
"compressed pages written" : 98881,
"page written failed to compress" : 0,
"page written was too small to compress" : 924
}
что означает "записанная страница не сжимается"?
Какое решение?
+ Update2
используемая версия сервера mongoDB: 4.0.9
insert data document
$result = $collection->insertOne( ['num'=> (int)$i ,
'title' => "$i",
'main' => "$i",
'img' => "$t",
'user'=>"$users",
'like'=> 0,
'time'=> "$date" ] );
---Variable Description---
$i = 1 ~ 100,000 (Increment by 1)
$t = 100KB(102400byt) random string
$users = (Random 10 characters in 12134567890abcdefghij)
$data = Real-time server date (ex = 2019:05:18 xx.xx.xx)
index
db.test.createIndex( { "num":1 } )
db.test.createIndex( { "title":1 } )
db.test.createIndex( { "user":1 } )
db.test.createIndex( { "like":1 } )
db.test.createIndex( { "time":1 } )
Сбор статистики слишком длинный, поэтому я поставлю только две.
мгновенным + ложь
"creationString": "access_pattern_hint = none, alloc_size = 4 КБ, app_metadata = (formatVersion = 1), assert = (commit_timestamp = none, read_timestamp = none), block_allocation = best, block_compressor = snappy , cache_resident = ложь, контрольная сумма = на, colgroups =, подборщик =, столбцы =, словарь = 0, шифрование = (KeyID =, имя =), эксклюзив = ложь, экстрактор = формат = ВТКЕЙ, huffman_key =, huffman_value =, ignore_in_memory_cache_size = ложь, неизменное = ложь, internal_item_max = 0, internal_key_max = 0, internal_key_truncate = верно, internal_page_max = 4KB, key_format = д, key_gap = 10, leaf_item_max = 0, leaf_key_max = 0, leaf_page_max = 32KB, leaf_value_max = 64, бревенчатый = (включен = истина), LSM = (auto_throttle = истина, цветение = верно, bloom_bit_count = 16, bloom_config =, bloom_hash_count = 8, bloom_oldest = ложь, chunk_count_limit = 0, chunk_max = 5ГБ, chunk_size = 10MB, merge_custom = (префикс =, start_generation = 0, суффикс =), merge_max = 15, merge_min = 0), memory_page_image_max = 0, memory_page_max = 10m, os_cache_dirty_max = 0, os_cache_max = 0, prefix_compression = ложь , prefix_compression_ мин = 4, источник =, split_deepen_min_child = 0, split_deepen_per_child = 0, split_pct = 90, тип = файл, value_format = и»,
мгновенным + правда
"creationString": "access_pattern_hint = none, alloc_size = 4 КБ, app_metadata = (formatVersion = 1), assert = (commit_timestamp = none, read_timestamp = none), block_allocation = best, block_compressor = snappy , cache_resident = ложь, контрольная сумма = на, colgroups =, подборщик =, столбцы =, словарь = 0, шифрование = (KeyID =, имя =), эксклюзив = ложь, экстрактор = формат = ВТКЕЙ, huffman_key =, huffman_value =, ignore_in_memory_cache_size = ложь, неизменное = ложь, internal_item_max = 0, internal_key_max = 0, internal_key_truncate = верно, internal_page_max = 4KB, key_format = д, key_gap = 10, leaf_item_max = 0, leaf_key_max = 0, leaf_page_max = 32KB, leaf_value_max = 64, бревенчатый = (включен = истина), LSM = (auto_throttle = истина, цветение = верно, bloom_bit_count = 16, bloom_config =, bloom_hash_count = 8, bloom_oldest = ложь, chunk_count_limit = 0, chunk_max = 5ГБ, chunk_size = 10MB, merge_custom = (префикс =, start_generation = 0, суффикс =), merge_max = 15, merge_min = 0), memory_page_image_max = 0, memory_page_max = 10m, os_cache_dirty_max = 0, os_cache_max = 0, * 1 066 * prefix_compression = истина , prefix_compression_m в = 4, источник =, split_deepen_min_child = 0, split_deepen_per_child = 0, split_pct = 90, тип = файл, value_format = и»,
Спасибо за ваш интерес.