diff --git a/configuration/src/configs/general.rs b/configuration/src/configs/general.rs
index c1ede023..4ef514fd 100644
--- a/configuration/src/configs/general.rs
+++ b/configuration/src/configs/general.rs
@@ -140,11 +140,11 @@ impl CommonGeneralRpcServerConfig {
     }
 
     pub fn default_contract_code_cache_size() -> f64 {
-        0.25
+        2.0
     }
 
     pub fn default_block_cache_size() -> f64 {
-        0.125
+        3.0
     }
 
     pub fn default_shadow_data_consistency_rate() -> f64 {
diff --git a/configuration/src/default_env_configs.rs b/configuration/src/default_env_configs.rs
index 0268f72a..b251969b 100644
--- a/configuration/src/default_env_configs.rs
+++ b/configuration/src/default_env_configs.rs
@@ -40,13 +40,15 @@ server_port = "${SERVER_PORT}"
 max_gas_burnt = "${MAX_GAS_BURNT}"
 
 ## Contract code cache in gigabytes
-## By default we use 0.25 gigabyte (256MB or 268_435_456 bytes)
+## By default we use 2.0 gigabytes
+## We divide the cache size 1/4 for contract code and 3/4 for compiled contract code
+## Because the compiled contract code is bigger in 3 times than the contract code from the database
 contract_code_cache_size = "${CONTRACT_CODE_CACHE_SIZE}"
 
 ## Block cache size in gigabytes
-## By default we use 0.125 gigabyte (128MB or 134_217_728 bytes)
-## One cache_block size is ≈ 96 bytes
-## In 128MB we can put 1_398_101 cache_blocks
+## By default we use 3 gigabytes
+## We devide the cache size 1/3 for block cache and 2/3 for chunks cache
+## Because the chunks for block is bigger in 2 times than the block
 block_cache_size = "${BLOCK_CACHE_SIZE}"
 
 ## How many requests we should check for data consistency
diff --git a/rpc-server/src/config.rs b/rpc-server/src/config.rs
index 938773ca..2469e35e 100644
--- a/rpc-server/src/config.rs
+++ b/rpc-server/src/config.rs
@@ -55,10 +55,10 @@ pub struct ServerContext {
     pub genesis_info: GenesisInfo,
     /// Near rpc client
     pub near_rpc_client: crate::utils::JsonRpcClient,
-    /// Blocks cache
+    /// Blocks cache. Store block_view by block_height
     pub blocks_cache:
         std::sync::Arc<crate::cache::RwLockLruMemoryCache<u64, near_primitives::views::BlockView>>,
-    /// Chunks cache
+    /// Chunks cache. Store vector of block chunks by block_height
     pub chunks_cache:
         std::sync::Arc<crate::cache::RwLockLruMemoryCache<u64, crate::modules::blocks::ChunksInfo>>,
     /// Final block info include final_block_cache and current_validators_info
@@ -86,30 +86,41 @@ pub struct ServerContext {
 
 impl ServerContext {
     pub async fn init(rpc_server_config: configuration::RpcServerConfig) -> anyhow::Result<Self> {
-        // let contract_code_cache_size_in_bytes =
-        //     crate::utils::gigabytes_to_bytes(rpc_server_config.general.contract_code_cache_size)
-        //         .await;
+        let total_contract_code_cache_size_in_bytes =
+            crate::utils::gigabytes_to_bytes(rpc_server_config.general.contract_code_cache_size)
+                .await;
 
-        // For contract code cache we use 0.5GB. make it configurable. temporary hardcoded
-        let contract_code_cache_size_in_bytes = crate::utils::gigabytes_to_bytes(0.5).await;
+        // For compiled contract code cache we use 3/4 of total_contract_code_cache_size_in_bytes
+        // because the compiled contract code is bigger in 3 times than the contract code from the database
+        let compiled_contract_code_cache_size_in_bytes =
+            total_contract_code_cache_size_in_bytes / 4;
+        let compiled_contract_code_cache = std::sync::Arc::new(CompiledCodeCache::new(
+            compiled_contract_code_cache_size_in_bytes,
+        ));
+
+        // For contract code cache we use 1/4 of total_contract_code_cache_size_in_bytes
+        let contract_code_cache_size_in_bytes =
+            total_contract_code_cache_size_in_bytes - compiled_contract_code_cache_size_in_bytes;
         let contract_code_cache = std::sync::Arc::new(crate::cache::RwLockLruMemoryCache::new(
             contract_code_cache_size_in_bytes,
         ));
 
-        // let block_cache_size_in_bytes =
-        //     crate::utils::gigabytes_to_bytes(rpc_server_config.general.block_cache_size).await;
+        let total_block_cache_size_in_bytes =
+            crate::utils::gigabytes_to_bytes(rpc_server_config.general.block_cache_size).await;
 
-        // For chunk block we use 1GB. make it configurable. temporary hardcoded
-        let block_cache_size_in_bytes = crate::utils::gigabytes_to_bytes(1.0).await;
+        // For block cache we use 1/3 of total_block_cache_size_in_bytes
+        let block_cache_size_in_bytes = total_block_cache_size_in_bytes / 3;
         let blocks_cache = std::sync::Arc::new(crate::cache::RwLockLruMemoryCache::new(
             block_cache_size_in_bytes,
         ));
 
-        // For chunk cache we use 2GB. make it configurable. temporary hardcoded
-        let chunk_cache_size_in_bytes = crate::utils::gigabytes_to_bytes(2.0).await;
+        // For chunk cache we use 2/3 of total_block_cache_size_in_bytes
+        // because the chunks for block is bigger in 2 times than the block
+        let chunk_cache_size_in_bytes = total_block_cache_size_in_bytes - block_cache_size_in_bytes;
         let chunks_cache = std::sync::Arc::new(crate::cache::RwLockLruMemoryCache::new(
             chunk_cache_size_in_bytes,
         ));
+
         let near_rpc_client = crate::utils::JsonRpcClient::new(
             rpc_server_config.general.near_rpc_url.clone(),
             rpc_server_config.general.near_archival_rpc_url.clone(),
@@ -165,14 +176,6 @@ impl ServerContext {
         )
         .await?;
 
-        // For compiled contract code cache we use 1.5GB. make it configurable. temporary hardcoded
-        let compiled_contract_code_cache_size_in_bytes =
-            crate::utils::gigabytes_to_bytes(1.5).await;
-
-        let compiled_contract_code_cache = std::sync::Arc::new(CompiledCodeCache::new(
-            compiled_contract_code_cache_size_in_bytes,
-        ));
-
         crate::metrics::CARGO_PKG_VERSION
             .with_label_values(&[NEARD_VERSION])
             .inc();